无法在Eclipse中执行dex:GC开销限制

当我下载了Git项目OsmAnd并去编译它时,Eclipse返回了这些错误:

[Dex Loader] Unable to execute dex: GC overhead limit exceeded [OsmAnd] Conversion to Dalvik format failed: Unable to execute dex: GC overhead limit exceeded 

谷歌和Stackoverflow说,我必须更改eclipse.ini -Xms40m -Xmx384m 。 转换为Dalvik格式失败:无法执行dex:Java堆空间 。
我清理项目并重新启动Eclipse,但它没有帮助。

我发现这个链接: Android开发人员提示:“转换为Dalvik格式失败:无法执行dex:null”但是我不知道从我的项目中更改input.jar如果有人可以帮助,我可以发送项目给他们。

它可以通过更改Eclipse.ini中的VM值来解决。 将值设置为512和1024,如下所示:

 openFile --launcher.XXMaxPermSize 512M -showsplash org.eclipse.platform --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.5 -Xms512m -Xmx1024m 

图像中的变化区域 在这里输入图像描述

对于我下面的步骤工作

 1) Open eclipse.ini file 2)changed -Xms40m -Xmx512m to -Xms512m -Xmx1024m 3)Restart eclipse 

看这里

eclipse.ini看起来像这样。

 -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.200.v20140116-2212 -product org.eclipse.epp.package.jee.product --launcher.defaultAction openFile -showsplash org.eclipse.platform --launcher.XXMaxPermSize 256m --launcher.defaultAction openFile --launcher.appendVmargs -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms40m -Xmx512m -Xmx1024m 

让我假设由于Android XML造成的这个问题,因为你经常打开它

这些以下两个StackOverFlow问题是相互实现的:

每次我在Eclipse中点击一个Android XML文件时,它会加载所有API版本的数据

无法执行dex:超出GC开销限制

除了增加虚拟机值或降级到较旧的ADT版本(22.6.2或23.2)之外,我发现了另外一种解决scheme来解决这个问题。

注意:

一些较旧的ADT版本每次打开时都不会加载XML,所以没有内存溢出,导致超出了第一个线程中讨论的GC开销限制

解:

在日蚀的底部会有垃圾桶符号,其中说明运行垃圾收集器 。 每当你closures一个android的XML文件,不要忘记只需点击垃圾箱运行垃圾收集器释放内存。 这样你可以保护工作空间免受这种错误的影响:D

这可能是一个最终的解决scheme,因为如果你经常打开你的android XML,尤其是如果你做了很多像我这样的UI工程,你不能增加超过你的RAM限制的VM值:P

我希望这将有助于每个人来这个线程:)

保持冷静并打开代码

12小时后,这个错误,并没有成功改变eclipse.ini文件,我终于find了正确的解决scheme。 在我的环境variables中,有一个名为“_JAVA_OPTIONS”的variables,其中包含值“-Xmx512M”。 将此值更改为与eclipse.ini(-Xmx4096M)中相同的值我再次能够将我的项目导出到APK文件。

我不知道这个解决办法背后的原因,但是当所有上述都没有的时候,它对我来说都是有效的。

不要从捷径或链接开始日食。 总是从eclipse文件夹中的eclipse.exe中打开它,这是保存eclipse.ini文件夹

注 – 我只尝试用于Linux。

为了避免这个烦人的消息,我不得不改变我的configuration如下:

 -startup plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar --launcher.library plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.200.v20120913- 144807 -product com.android.ide.eclipse.adt.package.adtproduct -showsplash org.eclipse.platform --launcher.XXMaxPermSize 1024m --launcher.defaultAction openFile -vmargs -Dosgi.requiredJavaVersion=1.6 -XX:MaxPermSize=256m -Xms512m -Xmx1024m 

根据标记为正确的答案,改变

 -XX:MaxPermSize=256m -Xms512m -Xmx1024m 

和:

 --launcher.XXMaxPermSize 1024m 
 1) Open eclipse.ini file 2)change -Xms40m -Xmx512m to -Xms512m -Xmx1024m 3)Restart eclipse 

Eclipse中的eclipse.ini文件将位于eclipse的根path中,如下所示:

 C:\Users\username\Downloads\adt-bundle-windows-x86_64-20140702\eclipse\eclipse.ini 

相同的文件将位于android studio项目中: –

 C:\Users\username\AppData\Local\Android\sdk\tools\lib\monitor-x86_64\monitor(Type:Configuration settings) 

如果这些答案不起作用(他们不适合我),那么试试这个:

1)在工作区中复制你的.metadata文件夹。

2)删除您的.metadata目录完成复制

3)打开Eclipse并closuresEclipse。

4)将您的旧.metadata插件文件夹复制到新的.metadata中

5)将所有项目导回到您的工作区

6)保持冷静和密码!