在检测测试期间,库gradle模块中的资源的ResourceNotFoundException

时间:2017-01-11 22:40:13

标签: android android-gradle android-testing android-instrumentation

在检测测试期间,我的应用程序抛出以下错误。我的非测试版本中没有抛出此错误。

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实例上调用完全相同的方法的行为会有所不同。

1 个答案:

答案 0 :(得分:0)

不完全确定原因,但手动添加资源路径可能需要尝试,

android {
sourceSets {
    main {
        res.srcDirs = ['res1', 'res2']
    }
}
}

有关详细信息,请参阅此link