2013-08-20 46 views
1

我在Android庫項目中遇到資源問題。庫項目包含已經編譯爲JAR中的.class文件和res文件夾中的資源的源代碼。這些類是用--non-constant-id AAPT選項編譯的。Android庫項目返回的資源不正確

在我的圖書館項目中,我有:

res/drawable/image1.png 
res/drawable/image3.png 

在項目依賴於庫項目,我有:

res/drawable/image2.png 

Eclipse中爲每個項目創建一個R.txt和R.java。所以總共有兩個R.txt和兩個R.java。

在庫項目的R.java,資源ID是這樣:

image1=0x7f02007c; 
image3=0x7f02007d; 

庫項目意味着這個R.java文件將與相關項目的R.java產生一個最終的R合併的.java看起來像:

image1=0x7f02007c; 
image2=0x7f02007d; 
image3=0x7f02007e; 

正如預期的那樣,中image2列入最終R.java移動存儲位置下降了1。

問題:當我從我的庫項目的JAR引用資源(如R.drawable.image3)時,它將解析爲未合併R.java中的ID。例如:R.drawable.image3 = 0x7f02007d。但0x7f02007d實際上指向image2,因此返回了錯誤的資源。我認爲我做錯了什麼。有沒有人有任何想法可能是什麼?

+0

您是否嘗試刪除生成的代碼以允許其重新生成? – ChiefTwoPencils

+0

@BobbyDigital是的,我已經清理了這兩個項目,並確認'R.txt'和'R.java'文件實際上已被刪除。 – shanet

回答

-3

我解決了這個問題。原來圖書館項目中的JAR正在被錯誤地構建(特定於我的構建系統)。對於在搜索時遇到此問題的任何人都很抱歉;它不會很有幫助。

+0

我遇到了與我的JAR文件相同的問題,無法獲得正確的資源。請儘可能幫助。 –

+0

@PrabhjotSingh因此,如果你有問題,你應該開一個新的問題,而不是捎帶一個現有的問題。這就是說,查找getIdentifer()函數。 – shanet

+0

您能否詳細說明您的構建系統以及如何修復它?我現在遇到這個問題。 –

相關問題