2013-01-16 200 views
0

我創建了一個可以完成一些非常簡單的網絡工作的Android項目。這個項目是獨立的,我已經成功地將它導出爲一個jar文件,並將其導入到我工作過的其他項目中。導出此項目時,我只導出用於該項目的類文件。 (沒有系統文件:即清單等)創建一個包含另一個jar文件的Jar文件

我想離開這個項目作爲獨立的,因爲它在其他項目中使用,並將在未來使用更多。

但是,我們還有其他需要網絡jar功能和其他功能的項目。我想要做的是創建一個新項目,導入網絡jar文件。爲網絡jar文件中的所有功能創建包裝,然後添加更多功能。

之後我想將此項目打包爲一個jar文件,以便我可以僅將它用於需要額外功能的項目。

把這個項目當作jar是很重要的,因爲這個組件可能會提供給其他人使用,並且需要簡單/簡單的集成。

這個縫合像它應該是非常直截了當的我。但是我得到noClassDef錯誤並驗證錯誤。

我甚至把項目剝離成一個單一的函數,它從原始的網絡jar中返回一個靜態的字符串,並通過它並且仍然有一個「找不到從方法xxxx引用的方法xxxx」日誌,然後無法解析靜態方法警告,然後是一個No ClassDefFoundError。這裏是logcat。

log

什麼是做到這一點的正確方法?

謝謝!

回答

2

想要使用嵌入式jar的jar文件必須定義一個自定義類加載器,如JarClassLoader

如果您想使用單個jar文件,您還可以選擇OneJar,JarJar和ProGuard等選項。

+0

謝謝戴夫!我結束了使用FatJar,現在我可以直接訪問網絡jar文件資源和新的項目資源,非常方便!謝謝一堆! – Dave

相關問題