【问题标题】:Use provide gradle dependency in Android Unit Test在 Android 单元测试中使用提供 gradle 依赖
【发布时间】:2017-10-03 15:16:49
【问题描述】:

我正在尝试集成 Dagger 2 以用于单元测试。不幸的是,每当我运行测试时,我都会得到java.lang.NoClassDefFoundError: javax/inject/Provider

我在 Gradle 中添加了 javax 依赖项,如下所示:

depdencencies {
    ...
    provided 'javax.annotation:jsr250-api:1.0'
}

我尝试了什么: 将 provided 更改为 compile。使用此依赖项同时添加 compiletestCompile。我也试过testProvided,但没有这样的东西,所以它也不起作用。

显然问题在于,通过使用提供的这种依赖关系仅在编译时可用。不幸的是,没有其他任何工作,所以我愿意接受任何建议。如果需要更多信息,请询问。谢谢!

【问题讨论】:

    标签: android junit android-gradle-plugin dagger-2 dagger


    【解决方案1】:

    我在 AndroidStudio 2.2.3 dagger2 中使用 app/build.gradle 进行单元测试

    ....
    
    apt 'com.google.dagger:dagger-compiler:2.11'
    compile 'com.google.dagger:dagger:2.11'
    provided 'javax.annotation:jsr250-api:1.0'
    provided 'org.glassfish:javax.annotation:10.0-b28'
    
    
    ....
    

    【讨论】:

    • 谢谢。虽然你能提供信息为什么它在我的情况下不起作用?另外,为什么我需要同时使用两个 provided 依赖项来进行 javax 注释?
    • 我认为提供 'org.glassfish:javax.annotation:10.0-b28' 就足够了,对不起,我无法解释。我研究了 Dagger 教程并使用了推荐的 buil.gradle
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多