Android: Не удалось преобразовать формат Dalvik: невозможно выполнить dex: null
Я пытаюсь использовать SmugFig API SmugMug на Android. Он был разработан для J2SE, я бы представлял, поэтому я не уверен, что он даже будет работать на Android, но я решил, что стоит попробовать, а не пытаться создать свой собственный API.
Когда я загружаю проект, я получаю следующую ошибку:
Conversion to Dalvik format failed: Unable to execute dex: null
Он не говорит, в каком пакете он терпит неудачу, просто "проблема упаковки Android", но он этого не делал, прежде чем добавить SmugFig и его зависимость JARS к пути сборки.
Где я должен смотреть? Или это в основном меня, что он просто не будет работать с этими библиотеками?
Ответы
Ответ 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
Шаги, которые помогают мне удалить эту ошибку
- удалить библиотеки пользователей (внешние библиотеки).
- очистить проект
- снова добавьте внешнюю библиотеку
- создать проект
- запустите проект.
Надеюсь, это будет полезно для вас.
Спасибо.
Ответ 7
http://groups.google.com/group/android-developers/browse_thread/thread/3911749addce534d
Теперь они работают над нажатием исправления для 2.3
Изменить: это было исправлено для 2.3, перейдите к обновлению через eclipse.
Ответ 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
. Это сработало для меня.