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

时间:2012-02-27 19:44:03

标签: java android out-of-memory dalvik

当我下载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

Google和Stackoverflow说我必须在-Xms40m中更改-Xmx384m eclipse.iniConversion to Dalvik format failed: Unable to execute dex: Java heap space
我清理了项目并重新启动了Eclipse,但它没有帮助。

我找到了这个链接:Tips for Android developer: “Conversion to Dalvik format failed: Unable to execute dex: null” 但我不知道我的项目中哪个.jar更改了输入。 如果有人可以提供帮助,我可以将项目发送给他们。

9 个答案:

答案 0 :(得分:436)

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

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

图像中已更改的区域 enter image description here

答案 1 :(得分:24)

对我说下面的步骤

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

3)Restart eclipse

See here

答案 2 :(得分:7)

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

答案 3 :(得分:5)

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

StackOverFlow上的以下两个问题相互出现:

Every time I click on an Android XML file in Eclipse, it loads data for all API versions

Unable to execute dex: GC overhead limit exceeded

除了增加虚拟机价值或降级到较旧的ADT版本(22.6.2或23.2)之外,我找到一个解决方案来解决此问题

注意:

一些较旧的ADT版本,每次打开都不会加载XML,因此没有内存溢出导致 GC开销限制超出,如第一次所述螺纹

<强>解决方案:

在日食的底部会有垃圾桶符号,表示运行垃圾收集器。每当您关闭Android的XML文件时,不要忘记只需单击垃圾箱运行垃圾收集器即可释放内存。这样,您可以保护工作区免受此类错误的影响:D

这可能是一个终极解决方案,因为如果您经常打开Android XML,就不能将VM值增加到RAM限制之外,特别是如果你像我这样做很多UI工作:P

我希望这会有助于所有参与此线索的人:)

保持冷静和代码

答案 4 :(得分:1)

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

答案 5 :(得分:1)

我不知道这种解决方法背后的原因,但是当上述所有内容都没有时,它一直适用于我。

不要从捷径或链接开始日食。始终从您的eclipse文件夹中的eclipse.exe打开它,该文件夹包含eclipse.ini

注意 - 我只尝试过linux。

答案 6 :(得分:1)

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

-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

答案 7 :(得分:1)

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

相同的 eclipse.ini 文件将位于Eclipse的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)

答案 8 :(得分:0)

如果这些答案不起作用(对我来说没有),那就试试吧:

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

2)在复制后删除.metadata目录

3)打开Eclipse并关闭Eclipse。

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

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

6)保持冷静和代码开启!