2013-04-17 90 views
2

我正在編寫一個android庫(沒有資源),並計劃將它作爲jar分發。我的library.jar依賴於第三方庫說:thirdParty_1.jar和thirdParty_2.jar。我在eclipse中構建library.jar。 thirdParty_1.jar和thirdParty_2.jar包含在構建路徑中,並檢查導出的順序。 當我在示例應用程序中放置library.jar時,它會給出第三方庫中的類未找到的運行時異常。如何在Android項目中將一個jar包打包到另一箇中

你知道最新的將第三方庫封裝到自己的jar中並將其作爲獨立jar分發的正確方法嗎?

[更新] 我可以使用Eclipse FatJar插件創建一個jar。它是唯一一種將jar和jar一起發佈的依賴關係嗎?

+0

如果您目前正在嘗試創建一個Android庫,那麼不是一個Java庫,而是一個真正具有資源的Android庫,那麼您無法將它打包成一個jar包。 (按設計) –

+0

@thibaultd:是的,我知道你的意思。我的庫中沒有任何資源,只是簡單的java代碼。我能夠旋轉一個jar,並能夠在另一個應用程序中使用它,然後我必須添加這個新的外部jar的依賴。我將外部jar放在「libs」文件夾下,我發現它也包含在「Android Dependencies」中,但它在運行時失敗並且給外部jar中的類提供NoClassDefFound。 – bianca

回答

0

我已經設法做到這一點,使用螞蟻的zip任務-post-build

編輯build.xml底部看起來像這樣:

<!-- version-tag: custom --> 
<import file="${sdk.dir}/tools/ant/build.xml" /> 
<target name="-post-build"> 
    <zip destfile="bin/my-library.jar"> 
     <zipgroupfileset dir="bin/" includes="classes.jar"/> 
     <zipgroupfileset dir="libs/" includes="*.jar"/> 
    </zip> 
</target> 

我不知道Eclipse如何處理的構建過程,因爲我獨佔使用發展的命令行SDK工具,但它可能調用在ant debugant release什麼的,所有這些取決於-post-build目標。

相關問題