第三方库被添加到dexedLib目录下,但是该库没有classes.dex

问题描述 投票:4回答:2

有关我的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

任何帮助将不胜感激。

android dalvik dex android-build
2个回答
1
投票

因为您正在使用Eclipse,所以问题可能与构建的创建方式有关:

转到:项目属性| Java构建路径订购和出口

再次检查您的jar是否在列表中(可能已经在列表中了)。如果是,请选中它旁边的复选框,以便在创建apk时将jar导出。

享受...PS。我建议您转到Android Studio或IntelliJ(Android Studio之父)。 Eclipse的ADT已过时,不再维护。.]]


0
投票

我在将XZing包含到我的应用程序时遇到了同样的问题。对于3.2.1版,eclipse不会生成classes.dex,但是对于较早的2.3.0版则可以。我相信这是因为较新的版本使用Java 1.8语法,而较早的android SDK不支持该语法。

© www.soinside.com 2019 - 2024. All rights reserved.