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

С момента обновления до ADT 14 я больше не могу создавать свой проект. Он был строит до обновления.

Ошибка:

[2011-10-23 16:23:29 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;
[2011-10-23 16:23:29 - myProj] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Lcom/myapp/R$array;

Сообщается о подобных проблемах, и я пробовал предложения там, включая

  • Перезапуск Eclipse.
  • Очистка проекта и перестройка - отключите опцию "Project- > Build Automatically", затем "Clean" и "Build", затем попробуйте запустить. reset "Создать автоматически" для параметра "Вкл."
  • Повторная установка инструментов разработчика Android
  • Повторная установка Eclipse (обновлена ​​до последней версии 3.7.1)
  • Создал новый проект, импортирующий из файловой системы
  • Создал новый проект из подрывной деятельности.

Ответ 1

Моя проблема была решена после очистки некоторых каталогов и файлов, оставшихся от предыдущих версий инструментов. ADT Rev 14 изменяет, где хранятся двоичные файлы. Я удалил весь каталог bin, перезапустил Eclipse и очистил сборку и принудительно восстановил. Сначала это показалось, но проблема возникла после следующего прогона.

Наконец-то я обнаружил, что мой каталог bin был включен в путь построения проекта. Я исключил bin из пути сборки и повторил описанные выше шаги. Это решило мою проблему.

Ответ 2

У меня была такая же проблема, довольно странная, потому что это происходило только при использовании Eclipse (но все было в порядке с Ant). Вот как я его исправил:

  • Щелкните правой кнопкой мыши на Project Name
  • Выберите Build PathConfigure Build Path
  • В Java Build Path перейдите на вкладку Order and Export

  • Снимите флажок .jar библиотеки

Только иногда: Вкладка "Заказ" и "Экспорт" у меня не было библиотеки jar, поэтому я заблокировал элемент "Частные библиотеки Android". Теперь мой проект запущен.

Ответ 3

[Решено для меня]

Свойства проекта Eclipse- > Java build path- > Order and export

Снимите флажки с частных библиотек Android.

Ответ 4

Ничего из этого не помогло. Это была простая проблема в конце.

У меня был проект, который использует FacebookSDK и ViewPagerIndicator в качестве проектов библиотеки. Все они были построены на Android API 16, и эти два проекта использовали библиотеку поддержки Android vX (X не 16)

Я добавил внешний JAR для обоих этих проектов и указал его на \extras\android\v4... А также удалил ящик v4, который у меня был в папках libs.

Очистите все проекты и заново постройте.

Voilla!

Точная ошибка, которую я получал: Невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/view/PagerAdapter; Не удалось выполнить преобразование в формат Dalvik: невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/view/PagerAdapter;

Ответ 5

Эта проблема происходила у меня, у меня был внешний .jar в моей папке libs под названием gson-2.2.2.jar, но по некоторым причинам их было два, gson-2.2.2.jar и gson-2.2.2.jar(1), я просто удалил последний, и мой проект снова был построен отлично.

Ответ 6

  • Закрыть eclipse.
  • Удалить папку bin внутри папки проекта.
  • Запустите eclipse и очистите проект.
  • Теперь запустите, и проблема не исчезнет

Ответ 7

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

Для меня это произошло, когда я добавил android-support-v4.jar в свою папку libs/, и каким-то образом затмение добавило вторую копию в bin/classes/android-support-v4.jar.

Удаление дополнительной копии в bin/classes решило проблему - неуверенность в том, почему Eclipse сделал там копию.

Вы можете проверить это с помощью

grep -r YourOffendingClassName YourApp | grep jar

Ответ 8

Для меня я просто щелкнул правой кнопкой мыши по проекту → Путь сборки → настроить путь сборки → Библиотеки → удалить зависимость

после его работы.

Ответ 9

Эта ошибка может произойти, если у вас есть две банки, содержащие одни и те же имена классов, например. У меня было две библиотеки: jsr311-api-1.1.1.jar и jersey-core-1.17.1.jar, оба из которых содержат класс javax.ws.rs.ApplicationPath. Я удалил jsr311-api-1.1.1.jar и работал нормально.

Ответ 10

Я получал эту ошибку после добавления facebooksdk.jar к проекту, который уже имел зависимости от android-support-v4.jar. Поскольку facebookdk.jar уже включает в себя свою собственную android-support-v4.jar, были конфликты. Удаление ранее android-support-v4.jar из проектов Properties/Java Build Path/Libraries разрешило проблему для меня.

Ответ 11

Перейдите в Проект/свойства и Java Путь сборки и не отмечены частные библиотеки Android.

This is also another case for this kind of error

Готово

Ответ 12

Я удалил зависимости Android от пути сборки, и он сработал.

Изменить: игнорировать это. У меня была такая же банка в моих зависимостях maven и libs. Я удалил его в папке lib.

Ответ 13

Использование Eclipse:

перейти к проекту properties > Java build path > Order and export

затем снимите флажок Android private libraries.

Ответ 14

У вас, вероятно, установлен r14, эта ошибка, возможно, была вызвана из-за обновления инструментов платформы, вам необходимо повторно установить свой sdk

Ответ 15

Для меня эта проблема существует только в том случае, если в моем проекте задействованы проекты библиотеки Android. Поэтому, когда я удаляю все библиотеки и делаю, как вы сказали, я могу снова запустить свое приложение. Если есть задействованные библиотеки, даже трюк с извлечением мусора выиграл.

Я не понимаю, почему эта ошибка появилась сегодня, так как я использую ADT 14 уже несколько дней. Ну, были и другие ошибки, которые все еще меня радуют.

Ответ 16

Удаление папки bin было недостаточно, я также удалил папку gen. Затем после двух перестроек сообщение об ошибке dex исчезло.

Ответ 17

Выберите проект в Проводнике проекта, щелкните правой кнопкой мыши и выберите "Свойства" → "Путь сборки Java" → "Источник" → Установите флажок "Разрешить выходные папки для исходных папок"

Ответ 18

В основном я столкнулся с той же проблемой. Я удалил папку BIN, а затем удалил неиспользуемые файлы jar для Order and Import из eclipse. ЭТО РАБОТАЕТ после этого

Ответ 19

Я опаздываю на эту вечеринку, но добавляю свой собственный опыт, чтобы потом найти его позже:)

Я столкнулся с этой проблемой после обновления андроидов sdk и eclipse. Никакое обновление не будет безнаказанным!

Проблема для меня была связана с библиотечными проектами, мое приложение ссылается как на стандартные проекты Java, так и на проекты библиотеки Android. Я заметил, что в настройках пути Java Build Path были включены проекты библиотек android library src и res в списке Source (для всех, у которых упоминается bin в исходном выпуске, src и res также была проблема).

Итак, решение было:

  • Удалите все ссылки на источник и ссылки на ссылки на сайты Android из раздела "Путь сборки Java" в настройках как в списке источников, так и в списке "Проект"
  • Убедитесь, что чистые java-зависимости указаны в списке Project и отмечены на вкладке Order и Export, поэтому классы включены в apk
  • Убедитесь, что все зависимости в Android-библиотеке указаны в разделе свойств проекта Android в разделе библиотеки под проверенными версиями SDK.

Это было вместе, чтобы собрать все это вместе с другими решениями! Уф!

Ответ 20

Я столкнулся с этим, когда я обновил его с 14 до 15, и чтобы заставить его работать, я просто удалил папку .eclipse(вместе с моими настройками) и повторно установил adt 15.

Ответ 21

После прочтения ответа Terrys об удалении каталога bin и Larrys о местонахождении каталога ANT:

Я переместил файлы, расположенные в моей директории BIN проектов, в BIN/CLASSES и начал работать.

Изменить 1 Затем не удалось выполнить второй запуск... doh

Изменить 2 Итак, закрытые Eclipse переместили файлы обратно в исходное местоположение и все его рабочие... что? Я не притворяюсь, что знаю, почему это сработало. Будет обновлен при любых изменениях.

Изменить 3 Я заметил из своих резервных копий, что в каталоге BIN и BIN/CLASSES действительно есть дубликаты файлов.

Итак, ответ: не иметь файлов в обоих местах. По крайней мере, для меня это сработало.

Ответ 22

Измените файл eclipse.ini и установите для параметра максимальной памяти значение

-Xmx1024m

Затем перезагрузите компьютер.

Это сработало для меня.

Ответ 23

нашел решение, я верю???

    [2013-04-28 23:56:09 - Dex Loader] Unable to execute dex: Multiple dex files define Lcom/coremedia/iso/AbstractBoxParser$1;

Где он говорит: "Lcom/coremedia/iso/AbstractBoxParser $1", который, как оказалось, является местоположением библиотеки, которую я импортировал, что вызывало проблему. Посмотрел com.codemedia.iso.AbstractBoxParser $1.class и .AbstractBoxParser.class.... взял эту банку, распаковал ее, удалил оба из этих файлов, затем переупакован как .zip, добавил в библиотеку, очистился и работает! больше не конфликт для меня! (также нет обновлений или дополнительных загрузок)

Ответ 24

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

Ответ 25

Обновление ADT R14 изменяется, когда классы переходят в каталог bin/classes (см. http://tools.android.com/recent/buildchangesinrevision14). Если вы используете ANT, вы должны изменить путь для своих классов из bin в bin/classes. Это сработало для меня.

Ответ 26

Решение для меня:

  • НАЗАД ВАШЕГО КОДА!
  • Перейдите в рабочую область проекта (не ваш проект) и выполните следующие команды:

    dev1: рабочее пространство $cd ~/Documents/workspace/.metadata/.plugins/ dev1: рабочее пространство $rm -rf org.eclipse.core.resources

  • Перейдите в каталог Eclipse и введите следующую команду:

    dev1: eclipse $./eclipse clear

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

Точная ошибка, которую я получал: [2012-02-07 14:15:53 ​​- Dex Loader] Невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/view/PagerAdapter; [2012-02-07 14:15:53 ​​- ProjectCloud] Не удалось выполнить преобразование в формат Dalvik: невозможно выполнить dex: несколько файлов dex определяют Landroid/support/v4/view/PagerAdapter;

Ответ 27

У меня есть несколько проектов библиотек с тем же именем пакета, которое указано в AndroidManifest (поэтому никакие дублированные имена полей не генерируются R.java). Мне пришлось удалить любые разрешения и действия из AndroidManifest.xml для всех проектов библиотеки, чтобы удалить ошибку, поэтому Manifest.java не создавался несколько раз. Надеюсь, это может помочь кому-то.

Ответ 28

Попробовав все другие предложения без везения, я удалил все содержимое каталога "bin" моих проектов, а затем снова запустил eclipse и работал.

Ответ 29

Я преобразовал проект небиблиотеки в проект библиотеки, но у него был ранее созданный файл jar в папке libs. Удаление этого файла jar заставило эту ошибку уйти.

Ответ 30

Я столкнулся с одной и той же проблемой, после чего увидел, что при нажатии моего приложения несколько файлов jar, которые были загружены дважды, и, следовательно, многократная ошибка dex. Просто перейдите к своим свойствам проекта → Java Build Path и попробуйте снять флажок, который загружается дважды.