使用dagger为androidTest检测的测试用例生成代码覆盖率报告时出错

时间:2017-03-10 09:02:09

标签: android code-coverage dagger-2 android-instrumentation android-studio-2.3

我想运行createDebugCoverageReport gradle task.But运行后任务失败并给出以下错误。

 java.lang.NoClassDefFoundError: dagger.shaded.auto.common.BasicAnnotationProcessor
  at java.lang.Class.classForName(Native Method)
  at java.lang.Class.forName(Class.java:324)
  at android.support.test.internal.runner.TestLoader.doLoadClass(TestLoader.java:92)
  at android.support.test.internal.runner.TestLoader.loadIfTest(TestLoader.java:113)
  at android.support.test.internal.runner.TestRequestBuilder.loadClassesFromClassPath(TestRequestBuilder.java:801)
  at android.support.test.internal.runner.TestRequestBuilder.build(TestRequestBuilder.java:747)
  at android.support.test.runner.AndroidJUnitRunner.buildRequest(AndroidJUnitRunner.java:354)
  at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:260)
   at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1970)

以下是使用的匕首依赖

 compile 'com.google.dagger:dagger:2.4'
 annotationProcessor 'com.google.dagger:dagger-compiler:2.4'
 androidTestCompile 'com.google.dagger:dagger-compiler:2.4'

请建议,我如何删除此错误。

1 个答案:

答案 0 :(得分:0)

由于我发现,它与dagger-producer扩展冲突 - auto-value-gson适用于dagger 2.0.2 - 2.4,但是当dagger-producer(任何版本)被添加为额外的依赖关系时抛出异常项目。

我们的问题是你要达到dex限制,这与此票证不同。确保您将这些依赖项添加到apt配置中,而不是编译。