当我下载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.ini
。
Conversion 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
更改了输入。
如果有人可以提供帮助,我可以将项目发送给他们。
答案 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
图像中已更改的区域
答案 1 :(得分:24)
对我说下面的步骤
1) Open eclipse.ini file
2)changed
-Xms40m
-Xmx512m
to
-Xms512m
-Xmx1024m
3)Restart eclipse
答案 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)保持冷静和代码开启!