Ошибка преобразования в формат Dalvik: невозможно выполнить dex: пространство кучи Java

79

Я добавил файл jar размером 2,45 МБ в свой проект Android eclipse, и теперь я продолжаю получать сообщение «Ошибка преобразования в формат Dalvik: невозможно выполнить dex: Java heap space», что бы я ни делал.

Я провел исследование в Интернете и был проинформирован об обновлении моего eclipse.ini, чтобы увеличить размер кучи виртуальной машины Java. Я сделал это для всех значений в eclipse.ini и продолжаю получать ошибку сборки.

Есть идеи?

AndroidPlaya
источник
Не могли бы вы опубликовать строки, которые вы добавили в eclipse?
CRM
-startup plugins / org.eclipse.equinox.launcher_1.1.0.v20100507.jar --launcher.library plugins / org.eclipse.equinox.launcher.win32.win32.x86_1.1.1.R36x_v20100810 -product org.eclipse.epp.package .java.product --launcher.defaultAction OpenFile --launcher.XXMaxPermSize 512M -showsplash org.eclipse.platform --launcher.XXMaxPermSize 512m --launcher.defaultAction OpenFile -vmargs -Dosgi.requiredJavaVersion = 1,5 -Xms512m -Xmx512m
AndroidPlaya
У меня тоже есть записи -data @noDefault в моем init: я пробовал добавлять различные коды, включая -Xms512m -Xmx512m и -vmargs -Xms512m -Xmx512m в различных вариантах с этими двумя строками. также есть предложения добавить еще около 20 строк кода, которые я тоже пробовал. кому-то нужно опубликовать ПОЛНЫЕ строки кода, необходимые в exclipse.ini, сверху вниз, а также указать, нужно ли настраивать какие-либо пути к файлам в добавленном коде, что будет отличаться для разных конфигураций
Androidcoder,
Я также пробовал запускать из командной строки с помощью eclipse -vmargs -Xms512m -Xmx512m, который не работал
Androidcoder

Ответы:

209

Измените -XmsAmи -XmxBmпараметры при в eclipse.iniтак что они достаточно велики. По умолчанию это -Xms40m -Xmx384m. Попробуйте изменить их оба на -Xms512m -Xmx512mи перезапустить eclipse, чтобы посмотреть, поможет ли это. Если нет, продолжайте увеличивать значения и перезапускать eclipse, пока не произойдет одно из двух:

  1. Ваша сборка завершена.
  2. Eclipse не перезапускается, потому что у вас недостаточно памяти.

eclipse.ini находится в /etc/eclipse.ini в Ubuntu (при условии, что вы установили Eclipse из репозиториев Ubuntu).

Для MAC см.:

Найти eclipse.ini немного сложно. Чтобы найти его, щелкните правой кнопкой мыши значок приложения Eclipse и выберите «Показать содержимое пакета», затем дважды щелкните папку «Contents» и затем дважды щелкните папку «MacOS», домашнюю папку eclipse.ini.

https://confluence.sakaiproject.org/pages/viewpage.action?pageId=61341742

Джонни Ламбада
источник
8
На этой странице описывается, как найти eclipse.ini на Mac.
JohnnyLambada
7
В Windows он находится рядом eclipse.exe, куда бы вы его ни положили.
Cheezmeister
1
Единственные записи, которые у меня есть, это -data @noDefault Пожалуйста, посоветуйте
Рой Хинкли
@JohnnyLambada Привет, Джонни, я добавил файл jar размером 7 МБ и изменил переменную xms на 1024 м. Но теперь я получаю эту ошибку Преобразование в формат Dalvik завершилось ошибкой 1
Gaurav Arora
1
Флаг Xmx указывает максимальный пул выделения памяти для виртуальной машины Java (JVM), а Xms указывает начальный пул выделения памяти в соответствии с этим ответом SO.
JohnnyLambada
20

Иногда проверка библиотеки .jar в свойствах проекта также вызывает эту проблему. В этом случае попробуйте следующее:

Right click your project. 
Go to Properties -> Java Build Path -> Order and Export.
Uncheck the check box against your included library. 
Press OK and run the project.

При этом Eclipse будет брать только те классы, которые необходимы в коде, из jar, вместо того, чтобы сохранять все классы из jar.

Михир Шах
источник
5
Снятие отметки библиотеки с «Порядок и экспорт» приводит к возникновению исключения ClassNotFoundException при доступе к классу из этой библиотеки из кода. Библиотеки должны быть экспортированы.
Вайшак Наир
Да, именно так, я получаю ошибку Java Heap Error. Когда я снял отметку со всей библиотеки, она выполняется, но приложение вылетает на устройстве, пожалуйста, помогите мне ..
AK Joshi
0

Все вышеперечисленные ответы идеальны, но вы можете попробовать еще одну вещь, и это быстро и легко: закройте все ненужные открытые проекты в рабочем пространстве Eclipse, а затем перезапустите Eclipse.

Вы также можете увеличить параметры -XmsAm и -XmxBm в eclipse.ini.

ГОЛДЕ
источник
У меня такая же проблема, я тоже пробовал, размер памяти меняется. Но проблема не решена. Наконец, я сделал, Project Explorer -> щелкните правой кнопкой мыши -> Maven -> обновить проект. Моя проблема решена. Как только я совершу последнюю проверку, мне нужно выполнить обновление Maven. Но я ошибся.
Вс,
@Ravi, как решить эту ошибку, дайте мне знать.
Сандип Лондхе,
0

Перейдите в свойства своего проекта и удалите добавленные библиотеки из пути сборки Java, нажмите ОК, затем снова добавьте их. Я тоже столкнулся с этой проблемой, тем самым решил эту проблему.

номан404
источник
Это действительно сработало для меня с eclipse ADT @AndroidHacker
noman404
-1

Важное дополнение:

Решение не сработало на моей Windows (возможно, проблемы с распределением памяти), но хорошо сработало на Linux на той же машине. Таким образом, установка другой ОС поможет вам или переустановке Windows.

Александр Ухов
источник
Только что переустановил Мою ОС .. не сработало. Также на всякий случай заменил материнскую плату и купил новый жесткий диск, который тоже не работал.
Kapitein Witbaard 02 авг.15,