複数の Android アプリケーション プロジェクトで使用される Android ライブラリ プロジェクト (A) があります。libsライブラリ プロジェクトのフォルダー内に配置されたライブラリ jarは、com.lib.Rこのプロジェクト内のリソース ファイル (画像など) を参照します。
アプリケーション プロジェクト (B) がこのライブラリを使用すると、libs フォルダー内の jar ファイルをトリガーして、 によって参照されるリソースを参照するコードが呼び出される場合がありますcom.lib.R。残念ながら、これらのリソースにアクセスしようとすると、次のエラーが発生します。
java.lang.NoClassDefFoundError: com.lib.R$layout
これらのリソースが のsrc/フォルダーLib Aまたは のsrc/フォルダーからアクセスされる場合Project B、それらは値に正しく解決intされて使用できますが、それを行わずにコードをlibsフォルダー内に保持することをお勧めします。
私の質問- なぜこれが起こるのか、どうすれば解決できますか? 回避策の 1 つは、 を使用してプログラムでリソース ID を取得することですresource.getIdentifier()が、これは非常に手間がかかります。ヘルパー メソッドを使用して手動で解決しなくてもcom.lib.R、ライブラリ jar から引き続き使用できる方法はありますか?libs
これがあなたを助けるためのイラストです。
ライブラリからのリソース アクセス
