Ошибка нескольких файлов dex при компиляции с помощью ant или Eclipse - PullRequest
8 голосов
/ 21 октября 2011

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

-dex:
   [dex] Converting compiled files and external libraries into 
         /Users/rob/Repos/my_app/bin/classes.dex...
    [dx] 
    [dx] UNEXPECTED TOP-LEVEL EXCEPTION:
    [dx] com.android.dx.util.DexException: Multiple dex files define 
         Lcom/robaldred/myapp/About$1;

Я пытался очистить и восстановить, я также пытался в Eclipseно это дает ту же ошибку.У кого-нибудь есть идеи?Я сейчас у кирпичной стены.

Ответы [ 8 ]

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

Я часами чистил, создавал новые проекты, удалял-переустанавливал sdk ... ничего не получалось. У меня не было ни одного проекта библиотеки (у меня просто были некоторые файлы JAR под lib). Howerver, в конце концов я это исправил и мои шаги были:

  • Поиск и очистка всех файлов .apk (некоторые были в папке .svn ... grr .. какой-то разработчик добавил некоторые папки, связанные со сборкой, в svn)
  • удалить bin и gen.
  • Из свойств проекта eclipse удалите ссылку на jar библиотеки, нажмите ok. Затем снова добавьте их обратно. У меня была какая-то java-библиотека. Я не знаю, почему мне пришлось удалить и добавить его обратно, но это, безусловно, было необходимо.
5 голосов
/ 22 октября 2011

Вчера что-то случилось с моей системой (и другой здесь, на работе), когда SDK хотел подтолкнуть обновление инструментов платформы, но потом я вообще не смог его использовать и т. Д.

Я закончил тем, что убрал свой SDK и переустановил его, затем все заработало как всегда. У меня не было вашей конкретной проблемы с дексом, но я подозреваю, что вчерашний толчок к обновлению сломал много вещей. Удачи.

3 голосов
/ 12 декабря 2011

Вы можете:

  • Удалить папки <.settings>, <bin>, <gen> и файлы <.classpath>, <.project> и <project.properties>.

  • Удалите свой проект в Eclipse (правая кнопка, <Delete>) без удаления исходных файлов.

  • Создайте новый проект Android и выберите <Create project from existing sources> изваши предыдущие источники.

  • Импорт внешних библиотек, если необходимо в пути сборки.

Это должно решить эту надоедливую проблему.

2 голосов
/ 03 августа 2013

Будьте очень осторожны со всеми исходными файлами, которые вы прикрепляете / имеете в своем проекте. Я нашел эту проблему в двух ситуациях:

  1. Когда у меня есть два разных jar библиотеки поддержки Android
  2. Когда я случайно поместил в прошлом какой-то Facebook src не как библиотеку, а прямо в мой каталог src

Так что все ответы, в которых говорится, что вы не должны помещать каталог bin / в путь к классам, также верны, но в ситуации, когда у вас есть ошибка, такая как:

[2013-08-02 20:22:03 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;
[2013-08-02 20:22:03 - Activity] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/facebook/android/AsyncFacebookRunner$1;

вы должны искать такие же файлы в проекте / библиотеках (в большинстве случаев это должно быть основано на среде Android Eclipse) или просматривать все источники, подключенные к проекту, чтобы найти множественное вхождение (как в примере кода выше) класса com.facebook.android.AsyncFacebookRunner

0 голосов
/ 09 декабря 2017

Измените реализацию fileTree (включите: [' .jar'], dir: 'libs') на предоставленный fileTree (включите: [' .jar'], dir: 'libs') в вашем приложенииgradle.build> зависимости.

Убедитесь, что он изменился в настройках вашего модуля> Зависимости {include = [* jar] dir = libs}.Рядом с ним должна быть область действия «Предоставлено», а не «Реализация».

0 голосов
/ 12 марта 2014

Если у вас возникли проблемы из-за нескольких файлов DEX

Удалите всю целевую папку и соберите проект снова. Это не повлияет на ваш проект, потому что все в целевой папке создается заново.

0 голосов
/ 12 июня 2013

Я видел эту же проблему. Если вы используете Android Studio, вам нужно убедиться, что у вас нет папок bin или gen, включенных в ваши проекты при компиляции.

После удаления я смог успешно скомпилировать

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

Я думаю, что каталог в bin меняется с

com/XXX/XXX

на

classes/com/XXX.

Вы можете очистить свой проект и решить его.

...