Подтвердить что ты не робот

Android: Не удалось преобразовать формат Dalvik: невозможно выполнить dex: null

Я пытаюсь использовать SmugFig API SmugMug на Android. Он был разработан для J2SE, я бы представлял, поэтому я не уверен, что он даже будет работать на Android, но я решил, что стоит попробовать, а не пытаться создать свой собственный API.

Когда я загружаю проект, я получаю следующую ошибку:

Conversion to Dalvik format failed: Unable to execute dex: null

Он не говорит, в каком пакете он терпит неудачу, просто "проблема упаковки Android", но он этого не делал, прежде чем добавить SmugFig и его зависимость JARS к пути сборки.

Где я должен смотреть? Или это в основном меня, что он просто не будет работать с этими библиотеками?

4b9b3361

Ответ 1

Я нашел запись в блоге, в которой говорится о увеличении объема памяти, выделенной в eclipse.ini: -Xms128m -Xmx512m или что-то более высокое, но это не сделало этого для меня.

Однако я нашел еще одно сообщение, в котором предлагалось сделать Project > Clean, и это исправило его для меня. Я думаю, что это происходит, когда вы закрываете Eclipse без закрытия первого эмулятора. Довольно хромая ошибка. Провел несколько часов, чтобы выкапывать решение сегодня утром... grrrrrrr: - (

Ответ 2

Перейдите в Project "Properties" Java Build Path "Библиотеки и удалите все, кроме" Android X.Y "(в моем случае Android 1.5). нажмите "ОК". Перейдите в Project" Clean "Чистые проекты, выбранные ниже" выберите ваш проект и нажмите "ОК". Это должно работать.

Также возможно, что у вас есть файл JAR, расположенный где-то в папках проекта (я скопировал файл JAR Admob в папку src), и THEN добавил его как библиотеку путей Java. Он не отображается в обозревателе пакетов, поэтому вы его не замечаете, но он дважды подсчитывается, вызывая страшную ошибку Dalvik 1.

Другой возможной причиной могут быть конфликты имен пакетов. Предположим, у вас есть пакет com.abc.xyz и класс с именем A.java внутри этого пакета, а другой проект библиотеки (который добавляется к зависимости этого проекта), который содержит тот же com.abc.xyz.A.java, то вы получите точно такую ​​же ошибку. Это означает, что вы имеете несколько ссылок на один и тот же файл A.java и не можете правильно его создать.

Ответ 3

После выхода Eclipse DDMS 8.0.0 с выпуском Android 2.3 эта ошибка неожиданно появилась.

Ни одно из приведенных выше предложений не помогло, но оказалось, что корень проблемы был ссылкой на проект (несколько классов, разделяемых между сервером и клиентскими сторонами).

Как только я удалил ссылку на проект и построил и включил банку проекта, который когда-то ссылался, проблема перестала существовать.

Кажется, что в DDMS 8.0.0 что-то пошло с ошибкой в ​​проектах с ссылками.

Ответ 4

Что сработало для меня, было удаление ссылки android.jar в

Настроить путь сборки → Путь сборки Java → Библиотеки

Оставьте ссылку на библиотеку Android 3.0.

Ответ 5

его просто из-за размера кучи, занимаемого некоторыми файлами JAR... которые можно удалить вручную...

else лучшим вариантом является изменение файла Eclipse.ini в папке eclipse.....

добавить -Xmx1024m в файл, чтобы размер памяти был 1 ГБ... это woul работает наверняка.....

Ответ 6

Шаги, которые помогают мне удалить эту ошибку

  • удалить библиотеки пользователей (внешние библиотеки).
  • очистить проект
  • снова добавьте внешнюю библиотеку
  • создать проект
  • запустите проект.

Надеюсь, это будет полезно для вас. Спасибо.

Ответ 8

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
512m
--launcher.defaultAction
openFile
-XX:MaxPermSize=512m
-vmargs
-Xms512m
-Xmx1024m

работает для меня https://groups.google.com/forum/?fromgroups=#!topic/phonegap/yWePvssyiLE

Ответ 9

Убедитесь, что вы не ссылаетесь на один и тот же проект в банке и затмении. Например, у вас есть проект под названием myproject в eclipse. Ваш проект андроида ссылается на проект myproject и созданный из него банку. Это даст ошибку, если вы попытаетесь использовать dex, когда он пытается выполнить dex против сгенерированных классов из myproject и из myproject.jar

Ответ 10

Только это решает мою проблему .Project > Clean

Ответ 11

Здесь они предполагают, что эта ошибка вызвана огромными .java файлами.

У меня была та же проблема и увеличилось количество выделенных мной ресурсов.

Ответ 12

Помощник для удаления папки /home/user/.android. ОС: Debian Wheezy 32bit

Ответ 13

Абсолютно ни один из ранее упомянутых "исправлений" не работал у меня, что неудивительно, потому что они даже не рассматривают проблему для начала.

Сама ошибка связана с конфликтом с Proguard. Вот отчет об ошибке: http://code.google.com/p/android/issues/detail?id=18359 И чтобы исправить это, вам просто нужно вручную обновить Proguard: http://sourceforge.net/projects/proguard/files/latest/download?source=files

Ответ 14

Для проектов, в которых используется New Relic

Обновите новую реликвию через "Обновить новую реликвию" в Project r'click → Update New Relic. Это сработало для меня.