2

インストルメンテーションテスト中に、私のアプリが次のエラーを投げています。このエラーは、非テストビルドではスローされません。インストルメンテーションテスト中のライブラリgradleモジュールのリソースのResourceNotFoundException

android.content.res.Resources$NotFoundException: String resource ID #0x7f030002 

私は2つの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モジュール内のクラスから例外がスローされます。文字通り、の同じインスタンスで全く同じメソッドを呼び出すと、:app:libraryから呼び出されたときの動作が異なります。

答えて

0

理由を正確に確認してくださいますが、手動でリソースのパスを追加するとしようとするものになる可能性があり、

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

ないが、リソースが実際にあるより多くの情報

+0

のために、このlinkを参照してください。 ':library'モジュールの中から呼び出されると、呼び出しは失敗します。 ':app * 'モジュール内から* exact *同じ呼び出しが行われた場合、それは動作します。 – ZakTaccardi

関連する問題