有关我的Android应用程序中的附加功能,我下载了一些第三方库的开放源代码。这是为了进行自定义。
我正在使用Eclipse Juno。
我用源代码创建了一个项目,进行了自定义,并构建了一个JAR。而且,我在我的项目中使用JAR库。我的应用程序中的代码在特定屏幕上调用库的适当功能。
应用程序编译良好:)
但是,当我运行我的应用程序并导航到使用库类的屏幕时,我遇到了库类的ClassNotFoundException
。
我进一步诊断了它,发现Dalvik VM将所有java类文件都转换为DEX。
所有第三方库都放在bin下的dexedLib目录中,其中通常的第三方JAR包括META-INF目录和classes.dex文件。但是,我添加的JAR仅包含META-INF目录,而没有classes.dex。因此是例外。
我没有观察到Dalvik VM报告转换失败事件的任何日志。
我多次清理了该项目,将项目加载/重新加载到Eclipse中,但是没有运气。
也参考了下面的文章,它讨论了同样的问题,但是对他来说,从Eclipse中清除项目并重新加载它是可行的。android dexed lib is empty
任何帮助将不胜感激。
因为您正在使用Eclipse,所以问题可能与构建的创建方式有关:
转到:项目属性| Java构建路径订购和出口
再次检查您的jar是否在列表中(可能已经在列表中了)。如果是,请选中它旁边的复选框,以便在创建apk时将jar导出。
享受...PS。我建议您转到Android Studio或IntelliJ(Android Studio之父)。 Eclipse的ADT已过时,不再维护。.]]
我在将XZing包含到我的应用程序时遇到了同样的问题。对于3.2.1版,eclipse不会生成classes.dex,但是对于较早的2.3.0版则可以。我相信这是因为较新的版本使用Java 1.8语法,而较早的android SDK不支持该语法。