当我下载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中更改输入。
如果有人能帮忙,我可以把项目发给他们。
假设这个问题是由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
我希望这能帮助每一个来到这个帖子的人:)
保持冷静,继续编程
为了避免这个恼人的消息,我不得不改变我的配置如下:
-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)