Android ライブラリ プロジェクトのリソースに問題があります。ライブラリ プロジェクトは、JAR 内の .class ファイルに既にコンパイルされているソースと、res
フォルダー内のリソースで構成されます。クラスは--non-constant-id
AAPT オプションでコンパイルされました。
私のライブラリプロジェクトには次のものがあります。
res/drawable/image1.png
res/drawable/image3.png
私が持っているライブラリプロジェクトに依存するプロジェクトでは:
res/drawable/image2.png
Eclipse は、プロジェクトごとに R.txt と R.java を作成します。したがって、合計で 2 つの R.txt と 2 つの R.java があります。
ライブラリ プロジェクトの R.java では、リソース ID は次のようになります。
image1=0x7f02007c;
image3=0x7f02007d;
ライブラリ プロジェクトとは、この R.java ファイルが依存プロジェクトの R.java とマージされ、次のような最終的な R.java が生成されることを意味します。
image1=0x7f02007c;
image2=0x7f02007d;
image3=0x7f02007e;
予想どおり、image2
最終的な R.java.
問題: のようなリソースをR.drawable.image3
ライブラリ プロジェクトの JAR から参照すると、マージされていない R.java の ID に解決されます。例: R.drawable.image3 = 0x7f02007d
. しかし、0x7f02007d
実際には を指してimage2
いるため、間違ったリソースが返されます。私は何か間違ったことをしていると思います。誰かがそれが何であるかについて何か考えを持っていますか?