当我下载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” 但是我不知道从我的项目的哪个.jar中更改输入。 如果有人能帮忙,我可以把项目发给他们。


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

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

图像中改变的区域


假设这个问题是由Android XML引起的,因为你经常打开它

下面两个问题是相互关联的:

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

and

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

我找到了另一个解决方案来解决这个问题,而不是增加VM值或降级到旧ADT版本(22.6.2或23.2)

注意:

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

解决方案:

在eclipse的底部将有一个垃圾桶符号,表示运行垃圾收集器。当你关闭一个android的XML文件时,不要忘记点击垃圾桶或运行垃圾收集器来释放内存。通过这种方式,您可以保护工作空间不崩溃这种错误:D

这可能是一个最终的解决方案,因为如果你经常打开你的android XML,特别是如果你做了很多UI工作,你就不能增加VM值超过你的RAM限制:P

我希望这能帮助每一个来到这个帖子的人:)

保持冷静,继续编程


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

对我来说,以下步骤是有效的

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

3)Restart eclipse

在这里看到的


如果这些答案不管用(对我来说没用),那么试试这个:

1)复制工作空间中的.metadata文件夹。

2)拷贝完成后删除。metadata目录

3)打开Eclipse并关闭Eclipse。

4)将插件文件夹从旧的。metadata复制到新的。metadata

5)将所有项目导入工作区

6)保持冷静和代码!


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


我不知道这种变通方法背后的原因,但当以上所有方法都不起作用时,它对我来说总是有效的。

不要从捷径或链接启动eclipse。总是从eclipse文件夹中的eclipse.exe打开它,也就是保存eclipse.ini的文件夹

注意-我只尝试linux。


为了避免这个恼人的消息,我不得不改变我的配置如下:

-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

and:

--launcher.XXMaxPermSize
1024m

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

相同的Eclipse .ini文件将位于Eclipse本身的根路径中,如下所示:

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)