gradle和robolectric升级后的资源$ NotFoundException google_play_services_version

Hél*_*tin 3 android gradle robolectric

我正在尝试将项目更新为Gradle 3.0.1/gradle wrapper 4.1.过去运行的Robolectric测试现在在运行时失败./gradlew testDebugUnitTest:

android.content.res.Resources$NotFoundException: org.odk.collect.android:integer/google_play_services_version
    at org.robolectric.android.internal.ParallelUniverse.setUpApplicationState(ParallelUniverse.java:72)
    at org.robolectric.RobolectricTestRunner.beforeTest(RobolectricTestRunner.java:319)
    at org.robolectric.internal.SandboxTestRunner$2.evaluate(SandboxTestRunner.java:220)
    at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:108)
    at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:35)
Run Code Online (Sandbox Code Playgroud)
  • com.android.tools.build:gradle:3.0.1
  • org.robolectric.robolectric:3.5.1
  • 构建工具26.0.2
  • gradle wrapper 4.1

这是一个开源项目 - 此处提供了更新的配置.

它似乎没有关联,但为了以防万一 - 我们也开始看到pmdlint我们之前没有的错误.那些配置或版本没有改变.

我发现了以下可能相关的问题:

到目前为止,关于这些职位的任何建议都没有帮助.我已经阅读了gradle和robolectric的发行说明,但没有看到任何提示.知道哪个工具可能导致问题?还有什么别的我可以试试吗?

Hél*_*tin 6

删除@Config(constants = BuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml", packageName = "org.odk.collect")和添加testOptions.unitTests.includeAndroidResources true就可以了.完全差异在这里.