Tom*_*ood 9 android android-contentprovider google-play-services android-gradle-plugin firebase-cloud-messaging
从多模块项目中的Android Gradle插件3.3.2迁移到3.4.0并执行时,connectedAndroidTest我看到一个致命异常。Google Play服务共享类正在StringResourceValueReader寻找资源,common_google_play_services_unknown_issue但找不到资源。
错误如下:
android.content.res.Resources$NotFoundException: Unable to find resource ID #0x7f0f0044
at android.content.res.ResourcesImpl.getResourcePackageName(ResourcesImpl.java:236)
at android.content.res.Resources.getResourcePackageName(Resources.java:1909)
Run Code Online (Sandbox Code Playgroud)
我正在进行Gradle和AGP升级,因此已移至Gradle 5.1.1和3.4.0,但是AGP 3.4.0导致我的Espresso测试运行在应用程序初始化的早期就爆发了。在我最初的情况下,此行为是由Firebase ContentProvider触发的,但是,如果排除此问题,StringResourceValueReader则会将问题转移到我的情况下是GoogleAds 的下一次使用。
我已经查看了为我的应用程序和androidTest生成的apk,以查看通过生成的所有资源aapt --dump values。缺少的资源ID在应用apk中不存在,在测试apk中确实存在,但是该ID附加到androidTest源集中不相关的资源(甚至不是字符串)。找不到的资源具有完全不同的res id,这两个apk中都可用。
我以为StringValueReader传递的是不正确的Context,在我的情况下,可能是InstrumentationContext,因此我在其他Firebase字符串资源旁边添加了缺少的字符串资源而没有运气(也在应用程序中尝试过)。
中的违规代码 StringResourceValueReader
public StringResourceValueReader(Context var1) {
....
this.zzev = this.zzeu.getResourcePackageName(string.common_google_play_services_unknown_issue);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112 次 |
| 最近记录: |