2012-07-11 146 views
0

正如主題表明我想創建一個使用一些android功能(沒有佈局),並將包括在Android項目中的jar庫。 這是可能的和如何? 從我做的研究,我設法包括一個簡單的jar文件,使用純Java(JAVA SE 1.6),但 當我嘗試創建一個jar文件時,我試圖運行Andoid應用程序時遇到以下異常:
致命異常:主要
java.lang.NoClassDefFoundError:mylib.pleasework.amen

我試過包括的android.jar在我的圖書館和移除Java庫,使該jar文件,建立針對Android SDK中,但它沒」工作。
我試過將jar文件包含在/ libs文件夾下,因爲它被認爲是從ADT v17和之後導入android項目中的jar的正確方法,但那也不起作用。
我想創建的jar不會使用任何資源(xml佈局,strings.xml),只需要Log.d和WifiManager。
我知道Android庫項目,但我的圖書館資源是敏感的,如果暴露在Android庫項目中,恐怕它不安全。我正在考慮創建一個jar並使用ProGuard(http://developer.android.com/tools/help/proguard.html)對其進行混淆。 我想我提到了一切。任何幫助將不勝感激。是否有可能創建包含android功能的jar?

感謝,
托馬斯

回答

0

我最終做到的方式是:創建一個Android庫項目(檢查項目屬性中的isLibrary複選框)通過Eclipse導出它(右鍵單擊項目 - >導出 - > jar文件,小心地取消選擇全部資源 - res文件夾,androidmanifest.xml,* .png等),並將其放入您想要的項目中,方法是將其導入到/ libs文件夾下。
我不知道這是否是最好的解決方案,但它對我有用。
二手ADT r20,Eclipse 3.7.1,Android API級別7

1

As the topic indicates I would like to create a jar library that uses some android functions (no layouts) and that will be included in an Android project. Is that possible and how?

使用jar命令,或<jar> Ant任務。我確信有辦法從Eclipse中導出JAR,但我個人從未使用它們。

例如,在this GitHub repo我有一個可重用的組件和一個子項目是一個示例應用程序。對於回購我build.xml包含以下自定義任務:

<target name="jar" depends="debug"> 
    <jar 
     destfile="bin/CWAC-WakefulIntentService.jar" 
     basedir="bin/classes" 
    /> 
</target> 

這會產生一個JAR文件,其他Android應用程序可以通過增加自己的libs/目錄使用。

I am aware of Android Library Project but my library source is sensitive and I am afraid that it won't be safe if exposed in a Android library project.

然後,它也不會安全地公開爲JAR。您可以創建一個供公衆使用的Android庫項目,該庫項目將使用庫中libs/中已編譯的JAR替換src/樹的內容。

+0

首先謝謝你的回答。我已經從Eclipse中導出jar文件,並將其導入到我的Android項目中,並且在構建時一切正常。在運行時,我得到了上面提到的異常。我不知道是否直螞蟻使用會有所作爲我想我會嘗試......在我的jar我應該包括出口android.jar或不?關於安全性,如果我理解正確,創建一個庫項目並導入jar會創建一個「封裝」層,因此它會更安全? – 2012-07-11 11:30:25

+0

@ThomasKa:如果您使用的是R17或更高版本的工具,那麼只需在'libs /'中使用JAR即可。如果它沒有找到這些類,請確保它們在JAR中,在我的jar中標記爲'public'等。「我應該包括 - 也不會導出android.jar?」 - 絕對不。 「創建一個庫項目並導入jar會創建一個更多的」封裝「層,因此它會更安全?」 - 一旦代碼離開開發機器,它本質上是不安全的。我猜你的問題是你不想發佈源代碼,並且有辦法解決這個問題。 – CommonsWare 2012-07-11 11:35:59

相關問題