无法在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)保持冷静和密码!