我想添加一個外部jar庫到我的Android項目。它編譯並下載到我的設備正常,但我得到了以下的logcat:外部庫jar不完整
04-11 08:17:16.849: E/AndroidRuntime(16053): FATAL EXCEPTION: main
04-11 08:17:16.849: E/AndroidRuntime(16053): java.lang.NoClassDefFoundError: org.puredata.android.service.R$raw
04-11 08:17:16.849: E/AndroidRuntime(16053): at org.puredata.android.service.PdService.onCreate(PdService.java:184)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread.handleCreateService(ActivityThread.java:1951)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread.access$2500(ActivityThread.java:117)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:985)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.os.Handler.dispatchMessage(Handler.java:99)
04-11 08:17:16.849: E/AndroidRuntime(16053): at android.os.Looper.loop(Looper.java:130)
這個問題似乎是R類不包括在庫中編輯。 Through this question我來到here其中這混亂的文字規定
重要變化:我們已經改變了庫項目產生 和包r類:
- R類沒有在jar輸出包裝的圖書館項目了。
- 庫項目不會爲其依賴的庫項目生成R類。只有主應用程序項目與他們自己一起生成Library R類。
這個 意味着庫項目不能從他們依賴的另一個 庫項目導入R類。這不是必需的,因爲他們的 自己的R類包括所有必要的資源。需要注意的是應用 項目從引用的庫 仍然可以導入將R類項目,但同樣,這是沒有必要爲自己的研發類包括 所有資源
所以,我有點卡住。我如何/能否強制圖書館列入其所需的資源?如果沒有,我怎樣才能在一個我想提供的庫中使用R類,而無需分享我的項目代碼?
Android庫不是JAR。它們包含資源,因此它們必須作爲源代碼鏈接 - 請參閱Aleks提供的答案來查看文檔。 (常規庫JAR可用於Android項目,但它們不包含資源。) – 2013-04-11 13:40:40