Невозможно выполнить dex: превышен предел издержек GC в Eclipse - PullRequest
209 голосов
/ 27 февраля 2012

Когда я скачал проект 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. Не удалось выполнить преобразование в формат Dalvik: невозможно выполнить dex: пространство кучи Java .
Я очистил проект и перезапустил Eclipse, но это не помогло.

Я нашел эту ссылку: Советы для разработчика Android: «Не удалось выполнить преобразование в формат Dalvik: невозможно выполнить dex: null» Но я не знаю, какой .jar из моего проекта изменить вход. Если кто-то может помочь, я могу отправитьпроект им.

Ответы [ 9 ]

436 голосов
/ 19 июня 2012

Это можно исправить, изменив значения виртуальной машины в Eclipse.ini. Установите значения 512 и 1024, как показано ниже:

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

Измененная область на изображении enter image description here

24 голосов
/ 31 декабря 2014

Для меня сработали следующие шаги

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

3)Restart eclipse

Смотрите здесь

7 голосов
/ 16 октября 2014

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
5 голосов
/ 10 июля 2014

Позвольте мне предположить, что эта проблема возникла из-за Android XML, потому что очень часто вы открываете его

Следующие две проблемы в StackOverFlow связаны друг с другом:

Каждый раз, когда я щелкаю по XML-файлу Android в Eclipse, он загружает данные для всех версий API

и

Невозможно выполнить dex: превышен предел накладных расходов GC

Я нашел еще одно решение для решения этой проблемы, кроме увеличения значений виртуальной машины или понижения до более старой версии ADT (22.6.2 или 23.2)

Примечание:

Некоторые из более старых версий ADT, которые не будут загружать XML каждый раз, когда вы открываете, поэтому нет переполнения памяти, из-за которого этот предел служебной информации GC превысил , как обсуждалось напервая нить

Решение:

В нижней части затмения будет символ мусорного ведра с состояниями Запустить сборщик мусора .Всякий раз, когда вы закрываете XML-файл Android, не забудьте просто нажать Корзина или Запустить сборщик мусора , чтобы освободить память.Таким образом, вы можете защитить рабочее пространство от сбоя такого рода ошибки: D

Это может быть окончательным решением, потому что вы не можете увеличить значение виртуальной машины сверх предела ОЗУ, если вы очень часто открываете свой Android-XML, особенно еслиВы делаете много UI работает как я: P

Я надеюсь, что это поможет всем, кто придет к этой теме:)

Сохраняйте спокойствие и код на

1 голос
/ 12 октября 2015
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 голос
/ 25 июля 2015

Чтобы избежать этого раздражающего сообщения, мне пришлось изменить свою конфигурацию следующим образом:

-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 голос
/ 30 мая 2015

Я НЕ знаю причину этого обходного пути, но он работает для меня все время, когда все вышеперечисленное не работает.

Не начинайте затмение с ярлыка или ссылки,Всегда открывайте его из eclipse.exe в вашей папке eclipse, той самой папке, которая содержит eclipse.ini

Примечание. Я пробовал только для linux.

1 голос
/ 09 марта 2015

После 12 часов с этой ошибкой и безуспешным изменением файла eclipse.ini я наконец нашел правильное решение.В моих переменных окружения была переменная с именем "_JAVA_OPTIONS", содержащая значение "-Xmx512M".Изменив это значение на то же, что и в eclipse.ini (-Xmx4096M), я снова смог экспортировать свой проект в файл APK.

0 голосов
/ 08 января 2015

Если эти ответы не работают (они не для меня), тогда попробуйте это:

1) Сделайте копию своей папки .metadata в вашей рабочей области.

2) Удалите каталог .metadata ПОСЛЕ создания копии

3) Откройте Eclipse и закройте Eclipse.

4) Скопируйте папку плагинов из старых .metadata в новые .metadata

5) Импортировать все проекты обратно в рабочее пространство

6) Сохраняйте спокойствие и используйте код!

...