«Преобразование в формат Dalvik завершилось с ошибкой 1» после обновления до ADT 14 - PullRequest
7 голосов
/ 22 октября 2011

После обновления до последних инструментов разработчика ADT 14 мой проект Android, включающий библиотечные проекты, больше не будет работать, выдавая ошибку:

Dx UNEXPECTED TOP-LEVEL EXCEPTION: ... already added: ...
...
Conversion to Dalvik format failed with error 1

Другие потоки, описывающие эту проблему с решениями, которые включают удаление и повторное добавление проектов, не работают.

Ответы [ 10 ]

8 голосов
/ 24 октября 2011

Эта проблема указана как известная проблема ADT 14. Вот цитата с сайта Android Tools Project:

Проект не строится с ошибкой [2011-10-20 23:32:04 - MyApp] Dx UNEXPECTED TOP-LEVEL EXCEPTION:<class>: already added: <class> Это связано с невозможностью удалить предыдущие исходные папки библиотеки из основной проект. Кстати, хрупкость вокруг тех связанных источников папки являются одной из причин, почему мы отходим от этого механизма (см. дополнительную информацию на http://tools.android.com/recent/buildchangesinrevision14). решение состоит в том, чтобы удалить эти <libraryname>_src исходные папки из ваши проекты. Просто щелкните их правой кнопкой мыши и выберите Build Path > Remove from Build Path. Вам также будет предложено удалить связанный папка, которую вы должны сделать. Если вам не предложили, удалите его вручную. Вы можете увидеть скриншот проблемы в этом великом сообщение: http://android.foxykeep.com/dev/fix-the-conversion-to-dalvik-format-failed-with-error-1-with-adt-14

Решение:

Как говорится, решение состоит в том, чтобы удалить исходные папки <libraryname>_src из ваших проектов. Вы можете сделать это, щелкнув правой кнопкой мыши по ним и выбрав «Путь сборки -> Удалить из пути сборки» или в свойствах вашего проекта (Путь сборки Java -> вкладка «Источник»).

6 голосов
/ 28 октября 2011

Я также столкнулся с этой проблемой, но ни один из вышеперечисленных не исправил ее:

  • Попытка удаления / повторного добавления библиотек с чистыми сборками по пути
  • Попытка удаления и повторного- импорт проектов

Без кубиков.Тем не менее, «Преобразование в формат Dalvik не удалось с ошибкой 1» смотрел мне в лицо каждый раз, когда я пытался экспортировать в apk.

Я мог сказать, что проблема была связана с ProGuard, потому что, когда я закомментировал этоВ моем файле project.properties все работало нормально:

proguard.config=proguard.cfg

Однако я не смог решить эту проблему, пока не нашел этого сообщения от David M Young.По-видимому, ADK / ADT 14 поставлялся с неверной версией ProGuard (упс!).Я скачал ProGuard версии 4.6 .Заменено содержимое каталога android-sdk \ android-sdk \ tools \ proguard \ lib на proguard4.6.zip \ proguard4.6 \ lib (3 * .jar файлы), перезапущеноЗатмение и экспорт в apk снова заработали!

5 голосов
/ 24 октября 2011

Чтобы решить, вы должны:

  • Щелкните правой кнопкой мыши свой проект> Свойства> Путь сборки Java и удалите все библиотеки, кроме одного Android IJ (в зависимости от вашей версии)
  • Project> Очистить
  • Добавить обратно удаленные библиотеки

Если проблема возвращается снова, полезно поместить библиотеки вне вашего проекта и импортировать их как «Внешние JAR»

1 голос
/ 14 ноября 2011

Привет, подумал, что я выброшу сюда свои два цента.когда я это сделал,

"_ src -> Удалить из пути"

Затем я очистил его и перестроил, и я смог нормально запустить его в режиме отладки на моем телефоне.Я мог бы также экспортировать это;но только если я отключил прогуард.Конечно, я не мог оставить это так, чтобы мой код был открыт для всеобщего обозрения.так что это было довольно безумно.но в конце концов я нашел лекарство, как ни странно, у них была такая же проблема (и исправление) с r12, как и с этим.

он находится в: [Каталог установки Android SDK] \ tools \ proguard \ bin \ proguard.bat

Изменить

вызов% java_exe% -jar "% PROGUARD_HOME%" \ lib \ proguard.jar% *

на

вызов% java_exe% -jar "% PROGUARD_HOME%" \ lib \ proguard.jar% 1% 2% 3% 4% 5% 6% 7% 8% 9

Я пробовал множество других вещей, но это то, что он сделалдля меня.

0 голосов
/ 15 июня 2014

Я имел дело с этой проблемой при использовании библиотеки Sherlock ActionBar в моем проекте.Вы можете сделать следующий шаг, это работает для меня.

Щелкните правой кнопкой мыши свой проект, выберите свойства.Появится диалоговое окно, выберите «Путь сборки Java» в левом меню.Удалите «Зависимости Android» и «Частные библиотеки Android» на правой панели, затем нажмите «ОК». Очистите проект (выберите меню «Проект» -> «Очистить»). Щелкните правой кнопкой мыши свой проект, выберите «Инструменты Android» -> «Исправить свойства проекта». Очистите проект еще раз.Перезагрузите компьютер Откройте eclipse и Export apk Hope, которые вам помогут.

0 голосов
/ 13 марта 2013

У меня была та же проблема, я использую ADT 20.0.3.

Шаги, которые я выполнил, чтобы решить эту проблему.

Удалите все файлы jar в папке project / lib и сослаться на нихв качестве внешних банок.Проверьте зависимости Android / справочные библиотеки в проекте на наличие дубликатов,

0 голосов
/ 26 февраля 2013

Зайдите в Проект »Свойства» Путь сборки Java »Библиотеки и удалите все, кроме« Android XY »(в моем случае Android 1.5).нажмите ОКПерейдите в Проект »Очистить» Очистить проекты, выбранные ниже »выберите свой проект и нажмите ОК.Это должно работать.

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

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

0 голосов
/ 15 ноября 2011

Только что эта проблема снова возникла (исправлена ​​в первый раз путем удаления элементов _src, как указано в других ответах) - на этот раз не было _src-файлов для удаления.Ошибка была связана с android-support-v4.jar, который был включен как часть проекта связанной библиотеки, а также как часть основного проекта.

Ошибка Dx Неожиданное исключение верхнего уровня: java.lang.IllegalArgumentException: уже добавлено: Landroid / support / v4 / content / ModernAsyncTask $ WorkerRunnable;

Проблема исчезла после удаления поддержки Android-v4.jar файл из пути сборки для основного проекта.Не думайте, что я натолкнулся на это как на возможную причину ошибок.

0 голосов
/ 24 октября 2011

Я использовал библиотеку для своего проекта, и у меня была та же ошибка - она ​​была решена путем удаления библиотеки и src-папки, очистки и добавления ее обратно и очистки снова.

Удалить

  1. Свойства проекта -> Android: удалить библиотеки, «Применить»
  2. Удалить включенную библиотеку src-folder
  3. лучше убрать,

Добавить еще раз

  1. Свойства проекта -> Android: снова добавить библиотеки, «Применить»
  2. Чистый проект
0 голосов
/ 22 октября 2011

Это известная проблема с андроидом sdk.Проверьте это blogpost для исправления.

...