13

我的基于仪器的(espresso)测试不能在 Lollipop+ 设备和模拟器上运行。它们可以在任何其他平台上正确运行。我和这个帖子里的人有同样的症状 - https://groups.google.com/forum/?fromgroups#!topic/adt-dev/QW5SuzQizNk

  • 我的测试在 src/androidTest/java/
  • 我已经设置了 testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
  • 测试类是@RunWith(AndroidJUnit4.class)
  • 单个测试用 @Test 注释

我可以执行 ./gradlew connectedCheck 并且测试在带有 KitKat 的设备上运行良好,但是当我尝试在带有 Lollipop 的设备上以相同的方式运行相同的测试时,我得到......

15:02:15.784 [WARN] [org.gradle.api.Task] XT1095 - 5.1 上的测试失败:仪器运行因“java.lang.NoClassDefFoundError”而失败

15:02:16.011 [警告] [org.gradle.api.Task] com.android.builder.testing.ConnectedDevice > 未找到测试。[XT1095 - 5.1] 失败

15:02:16.011 [警告] [org.gradle.api.Task] 未找到测试。这通常意味着您的测试类不是您的测试运行程序所期望的形式(例如,不要从 TestCase 继承或缺少 @Test 注释)。

4

1 回答 1

4

最后它开始工作了。我遵循了这个答案: https ://groups.google.com/d/msg/adt-dev/QW5SuzQizNk/mWdaEuuCCQAJ 链接到: https ://github.com/google/dagger/issues/271

基本上这是问题所在:

我错误地使用了 compile 'com.google.dagger:dagger-compiler:2.0.2'

而不是正确 的 'com.google.dagger:dagger-compiler:2.0.2'

于 2015-12-17T10:38:49.860 回答