2013-08-07 60 views
1

我建立它開始使用位於Android的服務類路徑

/system/framework 

問題內部的Android .jar文件服務的應用程序是每當我試圖從這個.jar文件訪問類,我得到一個classDefNotFound異常。

注意:我可以用stub'd版本的.jar文件編譯項目,但我不知道如何在Application(服務)類路徑中包含內部庫,以便我擺脫這個例外。

(我沒有使用eclipse)

+0

您正在使用哪個IDE? – IanB

+1

的IntelliJ,但我不認爲這個問題,或者涉及到IDE反正因爲庫位於模擬器本身和服務的類路徑是什麼應該被更新(我猜) – Ahmad

回答

1

我解決了這個問題,如下所示:

在/系統/框架文件將.jar和.odex 將.jar是空文件,存在於.odex文件中的代碼。

我轉換,我需要使用smali到.DEX文件.odex文件(你首先需要將.odex到.smali文件轉換,然後.DEX文件)

然後我轉換DEX文件罐子使用dex2jar

文件後,我包含在應用的APK生成的jar文件,以便能夠使用它們。

我正在寫這個來幫助任何人需要這樣做(這是幾天工作的結論!)

1

添加到AndroidManifest.xml中

<uses-library android:name="com.android.library" /> 

從Android文檔:http://developer.android.com/guide/topics/manifest/uses-library-element.html

這個元素告訴系統包括在庫的代碼包的類加載器。

+0

我用了「如果」形成有效的通用聲明。由於我沒有downvote你的答案,公衆輿論的重量似乎是反對你的那一刻,但我的立場,如果我錯了糾正。是不是我們,我們現在正在從以這種方式使用用途庫泄氣的情況下? – IanB