簡體   English   中英

無法在Eclipse中執行dex:GC開銷限制

[英]Unable to execute dex: GC overhead limit exceeded in Eclipse

當我下載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表示我必須在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

圖像中更改的區域 在此輸入圖像描述

對我來說,遵循以下步驟

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開銷限制

除了增加VM值或降級到較舊的ADT版本(22.6.2或23.2)之外,我找到了另一個解決此問題的解決方案

注意:

一些較舊的ADT版本,每次打開時都不會加載XML,因此沒有內存溢出導致此GC開銷限制超出第一個線程中所討論的

解:

在日食的底部會有垃圾桶符號,其中包含運行垃圾收集器 每當你關閉android的XML文件時,不要忘記只需單擊垃圾桶運行垃圾收集器來釋放內存。 這樣,您可以保護工作區不會崩潰這種錯誤:D

這可能是一個終極解決方案,因為如果您經常打開Android XML,就不能將VM值增加到RAM限制之外,特別是如果你做了很多像我這樣的UI工作:P

我希望這會幫助每個人來這個主題:)

保持冷靜和代碼

使用此錯誤12小時后,更改eclipse.ini文件沒有成功,我終於找到了正確的解決方案。 在我的環境變量中有一個名為“_JAVA_OPTIONS”的變量,其中包含值“-Xmx512M”。 將此值更改為與eclipse.ini(-Xmx4096M)中相同的值我再次能夠將項目導出到APK文件。

我不知道這種解決方法背后的原因,但是當上述所有情況都沒有時,它一直適用於我。

不要從捷徑或鏈接開始日食。 始終從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

和:

--launcher.XXMaxPermSize
1024m
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)

如果這些答案不起作用(他們不適合我)那么試試這個:

1)在工作區中制作.metadata文件夾的副本。

2)復制后刪除.metadata目錄

3)打開Eclipse並關閉Eclipse。

4)將舊的.metadata中的plugins文件夾復制到新的.metadata

5)將所有項目導回到工作區

6)保持冷靜和代碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM