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


79

我已将2.45mb jar文件添加到我的Android eclipse项目中,现在无论我做什么,我都继续收到“转换为Dalvik格式失败:无法执行dex:Java堆空间”的信息。

我在网上进行了研究,并被告知要更新eclipse.ini以增加Java VM的堆大小。我已经为eclipse.ini中的所有值完成了此操作,并且继续出现构建错误。

有任何想法吗?


您可以张贴您添加到eclipse的行吗?
CRM

-startup plugins / org.eclipse.equinox.launcher_1.1.0.v20100507.jar --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 -product org.eclipse.epp.package .java.product --launcher.defaultAction openFile --launcher.XXMaxPermSize 512M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion = 1.5 -Xms512m -Xmx512m
AndroidPlaya

我在初始化中也只包含条目-data @noDefault:我试图用这两行在各种排列中添加各种代码,包括-Xms512m -Xmx512m和-vmargs -Xms512m -Xmx512m。也有建议添加大约20行代码,我也尝试过。有人需要从上到下在exclipse.ini中发布所需的完整代码行,以及是否必须自定义添加的代码中的任何文件路径,这对于各种配置都会有所不同
Androidcoder 2013年

我也尝试过使用eclipse -vmargs -Xms512m -Xmx512m从命令行启动,但没有用
Androidcoder 2013年

Answers:


209

修改-XmsAm-XmxBm参数eclipse.ini,使其足够大。默认值为-Xms40m -Xmx384m。尝试将它们都更改为,-Xms512m -Xmx512m然后重新启动Eclipse以查看是否有帮助。如果不是,请继续增加值并重新启动eclipse,直到发生以下两种情况之一:

  1. 您的构建完成。
  2. Eclipse不会重新启动,因为您没有足够的内存。

eclipse.ini位于/etc/eclipse.iniUbuntu中(假设您从Ubuntu存储库中安装了Eclipse)。

对于MAC,请参阅:

查找eclipse.ini有点棘手。要找到它,右键单击Eclipse Application图标,然后选择“显示软件包内容”,然后双击“ Contents”文件夹,然后双击“ macOS”文件夹(eclipse.ini的主页)

https://confluence.sakaiproject.org/pages/viewpage.action?pageId=61341742


8
本页介绍如何在Mac上查找eclipse.ini。
JohnnyLambada 2012年

7
在Windows中eclipse.exe,无论放置在哪里,它都位于旁边。
Cheezmeister 2012年

1
我仅有的条目是-data @noDefault请告知
Roy Hinkley

@JohnnyLambada嗨,约翰尼,我添加了7mb jar文件,并将xms变量都修改为1024m。但是,现在我收到此错误,错误为1的Dalvik格式转换失败
Gaurav Arora

1
标志Xmx指定Java虚拟机(JVM)的最大内存分配池,而Xms是根据此SO答案
JohnnyLambada 2014年

20

有时检查项目属性中的.jar库也会导致此问题。在这种情况下,请尝试以下操作:

Right click your project. 
Go to Properties -> Java Build Path -> Order and Export.
Uncheck the check box against your included library. 
Press OK and run the project.

这样做时,Eclipse将仅从jar中获取代码中所需的类,而不是从jar中存储所有类。


5
如果从代码中访问该库中的类,则取消选中“订购和导出”中的库会导致抛出“ ClassNotFoundException”。该库应该被导出。
Vaishak Nair 2014年

是的这就是正确的,我得到了Java堆错误,当我未选中所有的图书馆,它执行了,但应用程序崩溃的设备上,请帮我..
AK乔希

0

以上所有答案都是完美的,但是您可以尝试另一件事,那又快又简单,请在Eclipse工作区中关闭所有不必要的打开项目,然后重新启动Eclipse。

您还可以在eclipse.ini中增加-XmsAm和-XmxBm参数。


我也遇到同样的问题,我也尝试过,内存大小更改。但是问题没有解决。最后,我做了,项目浏览器->右键单击-> Maven->更新项目。我的问题解决了。一旦我完成了最新的结帐,就应该进行Maven更新。但是我做错了。
2014年

@Ravi您如何解决错误,也请通知我。
Sandeep Londhe,2015年

0

转到项目属性,然后从“ Java构建路径”中删除添加的库,单击“确定”,然后再次重新添加它们。我也遇到了这个问题,通过这样做我解决了这个问题。


eclipse ADT @AndroidHacker
noman404

-1

重要补充:

该解决方案在我的Windows上不起作用(可能是内存分配问题),但在同一台计算机上的Linux上却运行良好。因此,安装其他操作系统将有助于您或Windows重新安装。


只是重新安装了我的OS ..无法正常工作。还更换了我的主板,以防万一并购买了新硬盘,但是那也没用。
卡皮汀·威巴德
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.