Невозможно выполнить dex: несколько файлов dex определяют Lcom/actionbarsherlock/R$attr

Я создал проект библиотеки для своего приложения. Когда я пытаюсь добавить библиотеку в проект, я получаю следующую ошибку при попытке запустить ее:

[2013-02-07 04:51:26 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr;
[2013-02-07 04:51:26 - testfromlibrary] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/actionbarsherlock/R$attr;

Я добавил библиотеку HoloEverywhere в свою библиотеку, а библиотеку ActionBarSherlock — в HoloEverywhere. Я использую Eclipse в Windows 7.

Несмотря на то, что я обновил SDK до последней версии, перезапустил Eclipse и очистил различные проекты, ошибка сохраняется.

Кто-нибудь знает, как решить эту ошибку? Мой каталог bin не включен к пути сборки в свойствах, и я попытался полное удаление папки bin.

Спасибо!


person Andreas H    schedule 07.02.2013    source источник


Ответы (12)


Я обнаружил, что если я зайду в свойства -> Путь сборки Java -> Заказ и экспорт и удалю частные библиотеки Android, то мой проект будет построен нормально. Там была еще одна банка поддержки v4, которая конфликтовала с библиотекой поддержки v4 для панели действий.

person Chriskot    schedule 14.08.2013

Эта проблема возникает у меня, когда я создаю библиотеку в сочетании с actionbarsherlock. В этом случае затмение создает R из Шерлока в моей библиотеке и в проекте, использующем его.

Решение состоит в том, чтобы удалить в папке bin вашей библиотеки только папку actionbarsherlock, содержащую классы R. Этот инст больше не создается и присутствует только в вашем приложении проекта.

person thalespf    schedule 07.04.2013

Я указал причину ошибки в /bin/classes. Если бы я удалил каталог /classes перед запуском приложения, приложение скомпилировалось бы и запустилось. Конечно, когда я пытался экспортировать приложение, каталог /classes возвращался, а вместе с ним и ошибка.

Решением моей проблемы была установка последней версии Eclipse. Когда я экспортирую или запускаю приложение через последнюю установку Eclipse, папка /classes больше не появляется.

person Andreas H    schedule 07.02.2013
comment
Решение моей проблемы заключалось в том, что я удалил файлы jar, которые я скопировал и вставил в папку lib проекта. Я явно импортировал внешние банки в путь сборки. - person Antesh Sharma; 20.05.2015

проблема для меня заключалась в дублировании файлов классов. у меня был как сам пакет, так и jar sdk пакета (в папке libs) в одном проекте.

person jony    schedule 30.04.2013

Это случилось со мной после того, как я изменил обычный проект Android на библиотечный проект, чтобы использовать его для разделения бесплатного/платного проекта.

Запуск любого из бесплатных/платных проектов приведет к ошибке OP.

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

person methical    schedule 14.09.2013

Убедитесь, что оба проекта (библиотека и приложение) не имеют одинакового имени пакета (в AndroidManifest).

person Ton Snoei    schedule 18.06.2013

У меня была такая же проблема сегодня. Я удалил файл .apk внутри /bin, похоже, это исправилось.

person Matthew Shearer    schedule 09.02.2013
comment
Привет @Matthew, спасибо за ответ. Как упоминалось ранее, я решил проблему, установив последнюю версию Eclipse. - person Andreas H; 10.02.2013

Удалите все библиотеки из пути сборки и импортируйте проект библиотеки, который вы хотите реализовать. Это отлично работает.

person user2918326    schedule 25.10.2013

Вы можете использовать Tattletale

Это поможет вам идентифицировать повторяющиеся классы в ваших файлах JAR.

Надеюсь, поможет.

person Jorge E. Hernández    schedule 08.08.2014

Для Android Studio - я удалил дубликаты импорта .jar, и это было разрешено.

Подробности. У меня было приложение, в котором была базовая папка /common, а затем две папки, унаследованные от нее — бесплатная и платная версии приложения. Проблема была вызвана тем, что у меня была папка /common и папка /free, включающая один и тот же файл jar crashlytics в структуре проекта.

person Gene Bo    schedule 29.01.2015

Для меня решением было удалить каждый файл JAR в папке/каталоге «bin».

person Amin SZ    schedule 16.05.2015

Если ваш проект ссылается на библиотечный проект, проверьте, есть ли в библиотечном проекте те же библиотеки, которые вы используете в своем проекте, но разные версии. Используйте одни и те же версии везде, и все должно быть в порядке!

person Taras    schedule 27.05.2015