Android - 转换为Dalvik格式失败:无法执行dex:Java堆空间不足

4
当我尝试在我的安卓设备上运行项目时,出现错误消息“Conversion to Dalvik format failed: Unable to execute dex: Java heap space”。我已经从另一台电脑导入该项目,并正常工作。
我已经查看了Conversion to Dalvik format failed: Unable to execute dex: Java heap space,并尝试增加-XmsAm-XmxBm的值,但是随着值的增加,问题仍然存在,直到Eclipse无法启动或者出现错误信息“Dex Loader] Unable to execute dex: Cannot handle conversion to jumbo index!"。
有没有其他解决方案呢?
编辑:我尝试创建一个新项目,并将所有文件从导入的项目中复制/粘贴过来,现在出现了新的错误。当我运行它时,出现错误消息:“Installation error: INSTALL_FAILED_DEXOPT”。
Logcat显示如下:
11-08 15:14:31.317: E/dalvikvm(3041): ERROR: Can't byte swap: bad dex version (0x30 33 36 00)
11-08 15:14:31.317: E/dalvikvm(3041): ERROR: Byte swap + verify failed
11-08 15:14:31.317: E/dalvikvm(3041): Optimization failed
11-08 15:14:31.325: E/installd(1059): dexopt failed on '/data/dalvik-cache/data@app@vmdl28652.tmp@classes.dex' res = 65280
11-08 15:14:33.083: E/AndroidRuntime(3035): ERROR: thread attach failed

有没有人熟悉这个错误?或者我应该为此开一个新线程吗?

你的项目中是否包含一些第三方的.jar文件?并且这是一个安卓项目,而不是其他电脑吗? - D-Dᴙum
我并没有直接复制整个项目。我刚刚开始了一个新项目,将AndroidManifest.xml的内容、一些字符串和图像复制过来,然后使用默认活动类运行该项目,现在出现了这个错误:

Java运行时环境检测到致命错误:

内部错误(classFileParser.cpp:3470),pid=4980,tid=2944

错误:ShouldNotReachHere()

JRE版本:7.0_01-b08

Java VM:Java HotSpot(TM) Client VM (21.1-b02 mixed mode windows-x86 )

无法编写核心转储文件。在Windows客户端版本上,默认情况下未启用Minidumps。

- Bryan
我只会复制源代码。其他的都要从头开始重新做。我知道这很麻烦。 - D-Dᴙum
你尝试过更新ADT&SDK和JDK 1.6吗?同时,检查一个全新的项目(hello world)是否可以编译和运行。 - android developer
@PeterO。OP在帖子中指出他们已经查看了您认为是重复的问题,但那里的解决方法对他们没有起作用。 - mydoghasworms
显示剩余2条评论
3个回答

0

这个问题可以通过增加位于您的Android SDK中的dx.jar的堆内存大小来解决。

您可以通过编辑adt-bundle-windows-x86_64-20130729\adt-bundle-windows-x86_64-20130729\sdk\build-tools\android-4.3\dex.bat文件并将其set defaultXmx=-Xmx1024M值更新为set defaultXmx=-Xmx1624M来完成此操作。


0

我在使用Admob ext. JAR时遇到了这个问题。他们有新的Google库和旧的SDK。我检查过,尽管我发誓已经删除了它,但旧的外部JAR仍然存在。删除旧的JAR对我有用。在Eclipse中:

右键单击项目并进入属性,单击Java Build Path,然后单击库,然后单击列表中的admob选项并单击删除。

如果您单击Android而不是Java Build Path,则应该看到Google Play服务项目出现在未选中框下的库中。


-1

尝试在项目名称上右键单击 > 源代码 > 清理... 我希望它对你有用。


1
不幸的是,那样做行不通。 - IgorGanapolsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接