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