gradle 和 robolectric 升级后的 Resources$NotFoundException google_play_services_version
Resources$NotFoundException google_play_services_version after gradle and robolectric upgrade
我正在尝试将项目更新到 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.evaluate(SandboxTestRunner.java:220)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:108)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:35)
- com.android.tools.build:gradle:3.0.1
- org.robolectric.robolectric:3.5.1
- 构建工具 26.0.2
- gradle 包装器 4.1
这是一个开源项目 -- 更新的配置可用 here。
它似乎不相关,但以防万一 -- 我们也开始看到我们以前没有看到的 pmd
和 lint
错误。这些配置或版本没有改变。
我发现了以下可能相关的问题:
- https://github.com/robolectric/robolectric/issues/3333
- https://github.com/robolectric/robolectric/issues/3374
- Reference to findViewById() is ambiguous when running unit test
到目前为止,这些帖子中 None 的建议对您有所帮助。我已经阅读了 gradle 和 robolectric 的发行说明,但没有看到任何提示。知道哪个工具可能导致问题吗?还有什么我可以尝试的吗?
删除 @Config(constants = BuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml", packageName = "org.odk.collect")
并添加 testOptions.unitTests.includeAndroidResources true
就成功了。完全差异 here.
我正在尝试将项目更新到 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.evaluate(SandboxTestRunner.java:220)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:108)
at org.robolectric.internal.SandboxTestRunner.runChild(SandboxTestRunner.java:35)
- com.android.tools.build:gradle:3.0.1
- org.robolectric.robolectric:3.5.1
- 构建工具 26.0.2
- gradle 包装器 4.1
这是一个开源项目 -- 更新的配置可用 here。
它似乎不相关,但以防万一 -- 我们也开始看到我们以前没有看到的 pmd
和 lint
错误。这些配置或版本没有改变。
我发现了以下可能相关的问题:
- https://github.com/robolectric/robolectric/issues/3333
- https://github.com/robolectric/robolectric/issues/3374
- Reference to findViewById() is ambiguous when running unit test
None 的建议对您有所帮助。我已经阅读了 gradle 和 robolectric 的发行说明,但没有看到任何提示。知道哪个工具可能导致问题吗?还有什么我可以尝试的吗?
删除 @Config(constants = BuildConfig.class, sdk = 21, manifest = "src/main/AndroidManifest.xml", packageName = "org.odk.collect")
并添加 testOptions.unitTests.includeAndroidResources true
就成功了。完全差异 here.