在检测测试期间,我的应用程序抛出以下错误。我的非测试版本中没有抛出此错误。
android.content.res.Resources$NotFoundException: String resource ID #0x7f030002
我有两个gradle模块
:app (android-application) //applicationId: com.app
:library (android-library) //applicationId: com.library
//:app includes :library as a dependency
有问题的资源在:library
模块中定义并抛出。
在检测过程中,我的:library
模块调用:
context.getResources().getString(com.library.R.string.pref_key)
- 这会引发异常如果我在检测期间在断点处调试并调用:
context.getResources().getString(com.app.R.string.pref_key)
- 这有效!但这是我的:library
模块中的代码,该模块在:app
上没有依赖性。我该如何解决这个问题?注意 - 错误仅发生在检测测试期间,而不是正常构建。
更新:在检测期间,调用getString(com.library.R.string.pref_key)
在从:app
模块中的类调用时起作用,但是从:library
模块中的类抛出异常。从字面上看,当从Resources
vs :app
调用时,在同一:library
实例上调用完全相同的方法的行为会有所不同。
答案 0 :(得分:0)
不完全确定原因,但手动添加资源路径可能需要尝试,
android {
sourceSets {
main {
res.srcDirs = ['res1', 'res2']
}
}
}
有关详细信息,请参阅此link