Android:转换为Dalvik格式失败:无法执行dex:null

Ada*_*ile 33 java eclipse android dalvik

我正在尝试在Android上使用SmugFig SmugMug API.它是为我想象的J2SE而设计的,所以我不确定它是否可以在Android上运行,但我认为它值得尝试而不是试图创建我自己的API.

当我加载项目时,我收到以下错误:

Conversion to Dalvik format failed: Unable to execute dex: null
Run Code Online (Sandbox Code Playgroud)

它没有说明它失败了什么包,只是"Android包装问题",但是在我添加SmugFig并且它的依赖JARS到构建路径之前它没有这样做.

我应该在哪里看?或者这主要是因为它不适用于那些库?

小智 41

我找到了一个博客条目,说明将eclipse.ini中分配的内存增加到:-Xms128m -Xmx512m或更高的值,但这对我来说没有.

但是,我发现另一个帖子建议做Project> Clean并为我修复它.我认为当你关闭Eclipse而没有先关闭模拟器时会发生这种情况.相当蹩脚的bug.今天早上花了几个小时挖掘解决方案... grrrrrrr :-(

  • 谢谢,也为我工作,但我不得不把它增加到-Xms512m -Xmx1024m (4认同)

小智 16

转到项目»属性»Java构建路径»库并删除除"Android XY"之外的所有内容(在我的案例中为Android 1.5).单击确定.转到项目»清洁»清除下面选择的项目»选择项目,然后单击"确定".这应该工作.

您可能还有一个位于项目文件夹中某处的JAR文件(我已将Admob JAR文件复制到我的src文件夹中),然后将其添加为Java Path Library.它没有显示在Package Explorer下,所以你没有注意到它,但它确实被计算了两次,导致可怕的Dalvik错误1.

另一个可能的原因可能是包名冲突.假设你在这个包中有一个包com.abc.xyz和一个名为A.java的类,以及另一个包含相同com.abc.xyz.A.java的库项目(添加到该项目的依赖项中),那么你将得到完全相同的错误.这意味着,您有多个对同一文件A.java的引用,无法正确构建它.


小智 6

在Eclipse DDMS更新8.0.0附带Android 2.3发布之后,这个错误突然出现了.

上述建议都没有帮助,但事实证明问题的根源是引用的项目(服务器端和客户端之间共享的几个类).

一旦我删除了项目引用并构建并包含了曾经引用过的项目的jar,问题就不复存在了.

似乎DDMS 8.0.0中的某些东西在引用项目中变得流氓.

  • 我们已经推动了adt 8.0.1来解决这个问题. (3认同)

Aru*_*Das 5

对我有用的是删除android.jar引用

配置构建路径 - > Java构建路径 - >库

保留Android 3.0库参考.