Android服务类路径

时间:2013-08-07 13:58:49

标签: java android classpath

我正在构建一个应用程序,它启动一个使用位于

的内部android .jar文件的服务
/system/framework

问题是每当我尝试从这个.jar文件访问一个类时,我得到一个classDefNotFound异常。

注意:我能够使用stub'd版本的.jar文件编译项目,但我不知道如何在Application(service)类路径中包含内部库,以便我摆脱了这个例外。

(我不是在使用eclipse)

2 个答案:

答案 0 :(得分:1)

添加到AndroidManifest.xml

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

来自Android文档:http://developer.android.com/guide/topics/manifest/uses-library-element.html

  

该元素告诉系统将库的代码包含在包的类加载器中。

答案 1 :(得分:1)

我解决了以下问题:

/ system / framework中的文件是.jar和.odex .jar是空文件,代码存在于.odex文件中。

我使用smali转换了我需要.dex文件的.odex文件(您首先需要将.odex转换为.smali文件然后转换为.dex文件)

然后我使用dex2jar

将dex文件转换为jar文件

之后,我将生成的jar文件包含在应用程序的apk中,以便能够使用它们。

我写这篇文章是为了帮助任何人做到这一点(这是几天工作的结论!)