我有一個一直在爲我工作的Android庫項目,但現在我有興趣將它「轉換」爲外部JAR。如何將Android庫項目轉換爲外部JAR?
我該怎麼做?
任何Android庫項目都可以轉換爲外部JAR嗎?如果不是,有什麼限制或限制?
我有一個一直在爲我工作的Android庫項目,但現在我有興趣將它「轉換」爲外部JAR。如何將Android庫項目轉換爲外部JAR?
我該怎麼做?
任何Android庫項目都可以轉換爲外部JAR嗎?如果不是,有什麼限制或限制?
是否可以將任何Android庫項目轉換爲外部JAR?
不是現在。
如果不是,有什麼限制或約束?
如果您的庫純粹是Java代碼,並且沒有資源,那麼您可以像創建常規Java那樣從.class
文件中創建JAR文件。
如果你的庫使用的資源,你仍然可以創建一個JAR如上。但是,您將需要通過反射或getIdentifier()
來查找R
值(例如,R.layout.main
),你的資源不會在JAR打包,但必須另行分配。
在未來,構建工具應該支持創建分發的JAR文件出庫項目,完成資源。當前的構建工具確實創建了JAR,但它們並非設計爲分佈式,而是目前內部構建的工件。
http://developer.android.com/guide/developing/projects/index.html#LibraryProjects聲稱不能將這些導出到外部JAR。具體報價:
同樣,你不能將庫項目導出到一個自包含 JAR文件,因爲你會爲一個真正的圖書館做。相反,您必須通過參考 從屬應用程序中的庫並構建該應用程序來間接編譯庫。
謝謝。我是否正確理解從.class文件創建JAR與[jar cf jar-file input-files]一樣簡單(http://download.oracle.com/javase/tutorial/deployment/jar/build.html )?另外,您能否詳細說明通過'getIdentifier()'訪問的資源是如何分開分發的? – uTubeFan
@uTubeFan:「我是否正確理解從.class文件創建JAR與jar cf jar-file input-files一樣簡單?」 - 據推測。我自己使用Ant''任務。 「另外,您是否可以詳細說明通過getIdentifier()訪問的資源是如何分開分發的?」 - 嗯,如果它們不在JAR文件中,並且JAR的重用者需要這些文件,則重用者需要以某種方式獲取這些文件。我推薦一個包含JAR和'res /'樹的ZIP壓縮文件。 –
CommonsWare
嗨@uTubeFan假設考慮一個項目** MyTranslator **,其中我正在翻譯一些文本,因爲我已經導入了一個jar文件** xyztranslator.jar **。現在我想將** MyTranslator **項目轉換爲**。jar **文件,以便我可以使用** MyTranslator **項目中的所有類以及** xyztranslator.jar **中的所有類。只是我的問題是**如何我可以將一個Android應用程序導出到一個已導入jar文件的.jar文件** –