Ошибка нескольких файлов dex при компиляции с помощью ant или Eclipse
Я не могу создать приложение
Я запускаю последние инструменты сборки, загружаемые сегодня, это началось после обновления.
-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, но он дает ту же ошибку.
У кого-нибудь есть идеи? Сейчас я на кирпичной стене.
Ответы
Ответ 1
Что-то случилось вчера с моей системой (и еще здесь на работе), где SDK хотел нажать обновление инструментов платформы, но тогда я не смог его использовать вообще и т.д.
В итоге я отключил SDK и переустановил его, тогда все работало так, как всегда. У меня не было конкретной проблемы с вашими проблемами, но я подозреваю, что вчерашний день обновления пробил очень много. Удачи.
Ответ 2
Я потратил часы на уборку, создание новых проектов, удаление-переустановка sdk... ничего не получилось. У меня тоже не было ни одного проекта библиотеки (у меня просто были файлы jar в lib). Howerver, В конце концов я исправил его, и мои шаги были:
- Поиск и очистка всех файлов .apk(у меня были некоторые в папке .svn... grr.. некоторый разработчик добавил некоторые связанные с сборкой папки под svn)
- удалить bin и gen.
- Из свойств проекта eclipse удалите ссылку на библиотечные банки, нажмите ok. Затем снова добавьте их обратно. У меня была java-библиотека, собранная java. Я не знаю, почему мне пришлось удалить и добавить его обратно, но это было необходимо.
Ответ 3
Вы можете:
-
Удалите папки <.settings>
, <bin>
, <gen>
и файлы <.classpath>
, <.project>
и <project.properties>
.
-
Удалите проект в Eclipse (правая кнопка, <Delete>
), не удаляя исходные файлы.
-
Создайте новый проект для Android и выберите <Create project from existing sources>
из предыдущих источников.
-
Импортируйте внешние библиотеки, если это необходимо в пути сборки.
Он должен решить эту неприятную проблему.
Ответ 4
Будьте очень осторожны со всеми исходными файлами, которые вы прикрепляете к проекту/имейте в своем проекте.
Я нашел эту проблему в двух ситуациях:
- Когда у меня есть две различные банки библиотеки поддержки Android,
- Когда я случайно поставил в прошлом какой-то 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
Ответ 5
Я думаю, что каталог из bin изменился с
com/XXX/XXX
к
classes/com/XXX.
Вы можете очистить свой проект и решить его.
Ответ 6
Я видел эту проблему. Если вы используете Android Studio, вы должны убедиться, что у вас нет папок "bin" или "gen", включенных в любой из ваших проектов при компиляции.
После этого я смог успешно скомпилировать
Ответ 7
Если у вас возникли проблемы из-за нескольких файлов DEX
Удалите всю целевую папку и снова создайте проект. Это не повлияет на ваш проект, потому что все в целевой папке будет создано снова.
Ответ 8
Измените файл fileTree для реализации (включите: ['.jar'], dir: 'libs') в
предоставил fileTree (включая: ['.jar'], dir: 'libs') в ваших зависимых приложениях gradle.build > .
Убедитесь, что он изменился в настройках модуля > Зависимости {include = [* jar] dir = libs}. Он должен иметь объем Предоставленный рядом с ним, а не Реализация.