1

Android ライブラリ プロジェクトのリソースに問題があります。ライブラリ プロジェクトは、JAR 内の .class ファイルに既にコンパイルされているソースと、resフォルダー内のリソースで構成されます。クラスは--non-constant-idAAPT オプションでコンパイルされました。

私のライブラリプロジェクトには次のものがあります。

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いるため、間違ったリソースが返されます。私は何か間違ったことをしていると思います。誰かがそれが何であるかについて何か考えを持っていますか?

4

1 に答える 1