2013-08-07 54 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