Не удалось выполнить dex: несколько файлов dex определяют
Я знаю, что этот вопрос задавали здесь несколько раз. Но я пока не видел никакого возможного решения.
Прежде чем сделать проект "Запуск в качестве приложения для Android", если я его не очищу, я получаю следующую ошибку и должен перезапустить Eclipse... и снова очистить.
Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define
Lcom/jstun/core/attribute/MessageAttributeInterface;
com.jstun.core... является частью моей папки src, конечно, я не могу ее удалить. И даже если я удалю этот пакет, другой пакет будет отображаться как ошибка, например:
Unable to execute dex: Multiple dex files define
Landroid/support/v4/app/ActivityCompatHoneycomb;
Я видел эту ошибку с момента обновления до ADT 15, я использую Eclipse Galileo на Ubuntu
Есть ли у вас какие-либо идеи? Спасибо за любой ответ!
Ответы
Ответ 1
Это проблема пути сборки.
-
Убедитесь, что папка вашего bin не включена в ваш путь сборки.
-
Щелкните правой кнопкой мыши на своем проекте → перейти к свойствам → Путь сборки.
-
Убедитесь, что библиотека Honeycomb находится в вашей папке libs/
, а не в исходной папке.
-
Включите библиотеки в libs/
отдельно в пути сборки.
Кстати, вы можете принести библиотеку android-support-v4
, чтобы получить поддержку Sandwich Ice Cream вместо библиотеки поддержки Honeycomb.
Ответ 2
Сегодня я столкнулся с подобной ошибкой, и причина в том, что в библиотеке поддержки были указаны два проекта библиотеки, которые использовались в моем проекте приложения, но с разными версиями.
Более подробно:
Мое приложение зависит от 2 проектов библиотеки
- FaceBookSDK 3.0 → , который ссылается на поддержку android-v4
- ActionBarSherlock → , который ссылается на android-support-v4, но с модифицированной версией для поддержки карт.
Чтобы решить эту проблему, мне пришлось заставлять библиотеку FaceBookSDK напрямую зависеть от библиотеки ABS, а не от библиотеки поддержки.
Ответ 3
Хорошо для меня, я удалил файл в папке libs под названием android support v4.jar, и все это получилось. Goodluck:)
Ответ 4
У меня была такая же ошибка, и каждый раз, когда я ее исправлял, она возвращалась после перезапуска Eclipse.
Прежде всего, как говорили другие люди, убедитесь, что у вас нет нескольких копий одного и того же файла .jar вокруг ваших проектов.
В моем случае у меня был основной проект, который использовал ActionBarSherlock (среди других проектов библиотеки). Трюк, который сработал у меня, шел в ActionBarSherlock --> Properties --> Java Build path --> Order of Export
и не выделял Android Private Libraries
. Затем перейдите в Project -> Clean
, и теперь вы должны правильно построить проект.
Теперь, по какой-то причине, каждый раз, когда я перезапускаю Eclipse, он автоматически включает этот флажок, поэтому мне нужно снова повторить этот процесс.
Надеюсь, это поможет некоторым потерянным душам:)
Ответ 5
Перейдите в Project/properties и Java Built Path и непроверьте частные библиотеки Android.
Ответ 6
Для меня просто зайдите в Project Properties → Java Build Path → Order and Export. Снимите флажок со всей внешней библиотеки, как показано ниже. Это работает для меня. Надеюсь на эту помощь.
![Project Properties]()
Ответ 7
Я также столкнулся с этой проблемой в своем проекте. AVD не может перезагрузить контексты папки, lib, res и etc.
проблема:
Dex Loader] Невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl
.
Затем я создал новые проекты и скопировал MainActivity.java
, activity_main.xml
, drawable context.
Затем удалите старый проект из пакета explorer, перезапустите Eclipse и AVD.
Мой проект теперь работает нормально....:)
Я надеюсь, что эти шаги помогут маленьким людям..!!
Ответ 8
У меня такая же проблема, что я пробовал:
- Элемент списка
- Открыть путь сборки проекта,
- Выберите вкладку "Библиотеки",
- Удалить всю библиотеку, кроме библиотеки Android.
- Добавление всех необходимых файлов JAR,
- И сделал!
Он работает для меня, спасибо.
Ответ 9
Если некоторые из вас сталкиваются с этой проблемой с помощью facebook-connent-plugin для телефонной связи
попробуйте удалить файлы в каталоге bin/class/com/facebook/android! → и rebuild
Ответ 10
Как уже упоминалось, это происходит, когда у вас есть несколько копий одного и того же класса в пути сборки или где-либо еще в вашей настройке.
Я добавил android-support-v4.jar в свою папку libs/, и каким-то образом eclipse добавила вторую копию в bin/classes/android-support-v4.jar.
Вы можете проверить это с помощью
grep -r YourOffendingClassName YourApp | grep jar
Удаление дополнительной копии в bin/classes решило проблему - неуверенность в том, почему Eclipse сделал там копию.
Ответ 11
Я получил эту ошибку по другой причине. Я ошибался, добавляя библиотеку поддержки v4 и v13. Это не было необходимо для меня, так как моя minSdkVersion - 15.
Я исправил его только включением библиотеки поддержки v13. Кроме того, обязательно отметьте библиотеку в пути экспорта экспортированной библиотеки в eclipse. Я также переместил его на верх.
Ответ 12
Решение для меня состояло в следующем:
- → lib в вашем проекте и удалите все несколько элементов.
- Project- > Properties- > Java build Путь и удаление любой библиотеки зависимостей было добавлено автоматически, а не вами! → Применить
- Перезапустить Eclipse IDE
- Теперь очистите проект.
- Запустить/отладить на устройстве/эмуляторе проект...
Удачи
Ответ 13
Даже после прохождения нескольких ответов ни одно решение не помогло мне.
Я удалил "Android Dependencies" из пути сборки.
Снова добавлены все файлы jar в путь сборки, и ошибка исчезла.
Каким-то образом затмение, казалось, скрывало все.
Ответ 14
У меня была эта проблема, и это не означает, что одна и та же библиотека загружается много раз, но System пытается одновременно загрузить один и тот же имя и, возможно, одно и то же имя пакета, т.е.
-
com.pack1.de
и Class Geometry
of library1.jar
и еще
-
com.pack1.de
и Class Geometry
of library2.jar.
Как вы должны подойти?
Вы должны проанализировать, какие методы используются, метод library1.jar или library2.
Есть 2 решения,
- Переименуйте имя_пакета, а затем dalvik интерпретирует, что это разные классы.
- Или, если вы хотите рискнуть, очистите класс, который не содержит метод, который мы действительно используем.
Я надеюсь, что это разъяснил этот часто задаваемый вопрос.
Ответ 15
Я оставляю этот ответ для тех, кто попадает в этот сценарий так же, как и я.
Я споткнулся здесь и там, прежде чем заметить, что я по ошибке перетащил JAR файл Support Library в мою папку src, и он лежал там. Поскольку я понятия не имел, как это произошло или когда я его бросил, я никогда не мог себе представить, что там что-то не так.
Я получал ту же ошибку, я обнаружил проблему через некоторое время и удалил ее. В настоящее время проект работает нормально.
Ответ 16
Моя проблема была первой:
Невозможно выполнить dex: java.nio.BufferOverflowException. Проверьте журнал Eclipse для трассировки стека.
1) я Щелкните правой кнопкой мыши мой проект → Инструменты Android → Добавить библиотеку поддержки
(Запустите приложение... Не работает, поэтому я продолжаю это делать...)
2) Щелкните правой кнопкой мыши в моем проекте еще раз → Свойства → Android → Проверить Android 4.1.2 (16) на цели сборки проекта
(Запустите приложение еще раз... и получите следующее:
Невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/app/BackStackState;
3) Итак, я пошел в папку "lib" в моем проекте и удалил "старый" Android.support.library.jar
(Запустите приложение и перекрестите пальцы и...)
¡IT WORKS!
Надеюсь, это поможет кому-то... Спасибо людям!
Ответ 17
Я удалил зависимости Android от пути сборки, и он сработал.
Ответ 18
Эта ошибка произошла со мной, когда в моем проекте приложения я ссылался на проект библиотеки в рабочем пространстве Eclipse (в моем случае на SDK для Facebook) и в то же время включил SDK Facebook в качестве банки папке libs. Удаление ссылки на библиотеку, но сохранение jar в папке libs удалило ошибку.
Ответ 19
У меня была такая же проблема. Мне пришлось удалить файл .apk
, а затем он сработал.
Ответ 20
Для меня я удалил android-support-v4.jar из папки lib, а также удален из пути сборки.
Ответ 21
- Щелкните правой кнопкой мыши по проекту и перейдите к
build Path>configuration build path
- Выберите вкладку библиотеки и нажмите
support-v4 library
и нажмите "Удалить"
- Нажмите OK
а затем очистите проект и запустите его: -)
Ответ 22
В случае, если кто-то еще ударит головой по этой проблеме, как я только что сделал:
В моем случае была задействована цепочка библиотечных проектов. Просто сделать проект чистым во всех библиотеках исправлено все
Ответ 23
Я нашел ниже решение в eclipse... надеюсь, что он работает для вас:)
Right click on the Project Name
Select Java Build Path, go to the tab Order and Export
Unchecked your .jar library's
Ответ 24
Эта проблема возникает, когда одна и та же библиотека добавляется в ваш проект несколько раз. Если вы не добавили библиотеку несколько раз преднамеренно, проверьте зависимые/частные библиотеки библиотек, которые вы добавили в свой проект, скорее всего, они уже включили библиотеку, которая вызывает этот конфликт.
Ответ 25
Я также пытался найти, что это проблема. В моем случае произошло то, что произошло при копировании apk в электронную почту (перетаскивание) - по ошибке apk был вставлен в папку src в одном из пакетов.
После удаления apk из исходной папки он работал нормально.
Ответ 26
У меня была эта проблема в Intellij, и именно потому, что библиотека ActionBarSherlock, добавленная в мой проект, определяла android-support-v4.jar как зависимость от компиляции, и эта банка уже была включена в мой проект, поэтому было несколько копий/версий DEX во время компиляции.
Решение заключалось в том, чтобы изменить зависимость модуля ActionBarSherlock для этого баннера как Runtime вместо компиляции, поскольку мой проект уже предоставлял его.
Ответ 27
Для меня проблема заключалась в том, что ранее я добавил проект lib (autobahn lib) и позже переключил файл Jar той же библиотеки. Хотя я удалил ссылки на старый проект библиотеки, я получал эту ошибку.
После всех ответов здесь я проверил путь сборки и т.д. Но я не добавил эти библиотеки для создания пути вручную. Поэтому мне нечего было удалить.
Наконец наткнулся на эту папку.
бен/dexedLibs
Я заметил, что есть два файла jar с тем же именем, что и для Android-автофайла, который вызывает конфликт. Поэтому я удалил все файлы jar в папке dexedLibs и восстановил проект. Это решило проблему.
Ответ 28
Чтобы добавить множество других потенциальных источников... Я обновил все библиотеки в моей папке проекта lib
, но затем Eclipse "помог" переустановить все исходные библиотеки. В Eclipse уже не было ссылок на эти библиотеки, но внешняя программа-разработчик dex только захватила все файлы в каталоге lib
и, таким образом, получила две версии нескольких файлов библиотеки .jar
.
git status
идентифицировал новые файлы и git clean -f
избавился от них для меня (хотя мне иногда приходилось ждать или перезапускать Eclipse в Windows, потому что у него все еще были файлы, открытые из копии).
Ответ 29
Простое решение ULTRA и лучшее:
Удалите все в правой правой папке главного проекта → Свойства → Путь сборки Java, кроме Android X.Y(где X.Y - версия в android). Очистить и построить. Готово!
Удостоверьтесь, что перед тем, чтобы иметь один android-support-v4.jar.
Ответ 30
Измените параметр памяти maximun в eclipse.ini
-Xmx1024m
И перезагрузите компьютер.
Это сработало для меня:)