Невозможно выполнить 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.
  • очистка проекта и перестроение-отключить опцию "проект - > построить автоматически", затем" очистить "и" построить " проект, затем попробуйте запустить. сбросить параметр "Build Automatically" на On
  • повторная установка Android Инструменты Разработчика
  • повторная установка Eclipse (обновлено до последней версии 3.7.1)
  • создан новый проект импорта из файловой системы
  • создал новый проект из subversion.

30 ответов


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

  • щелкните правой кнопкой мыши Project Name
  • выберите Build Path ->Configure Build Path
  • на Java Build Path перейдите на вкладку Order and Export

  • снимите свой .jar библиотека

только иногда: На вкладке "порядок и экспорт" у меня не было библиотеки jar там, поэтому я снял флажок Android Private Libraries item. Теперь мой проект запущен.


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

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


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

свойства проекта Eclipse - >путь сборки Java - >заказ и экспорт

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


ничего из вышеперечисленного помогло. В конце концов, это была простая задача.

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

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

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

Voilla!

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


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


  1. закройте Eclipse.
  2. удалить папку bin внутри папки проекта.
  3. запустите eclipse и очистите свой проект.
  4. теперь запустите, и проблема должна исчезнуть

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

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

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

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

grep-r YourOffendingClassName yourapp / grep jar


для меня, я просто щелкните правой кнопкой мыши на project - > Build path - > configure build path - > библиотеки - > удалить зависимость

после того, как он работает.


эта ошибка может произойти, если у вас есть две банки, содержащие одинаковые имена классов, например, у меня было две библиотеки: jsr311-api-1.1.1.jar, and jersey-core-1.17.1.банку, как содержащий класса javax.с WS.РС.ApplicationPath. Я снял jsr311-АФИ-1.1.1.jar и это сработало нормально.


Я получаю эту ошибку после добавления facebooksdk.Джар к проекту, который уже имел зависимости от android-поддержка-v4.Джар. С facebooksdk.Джар уже включает свой собственный android-поддержка-v4.Джар были конфликты. Удаление предыдущего android-поддержка-v4.Джар из свойств проектов / Java Build Path / Libraries решил проблему для меня.


на проект/свойства и Java Построить Путь и незарегистрированный на Частные Библиотеки Android.

This is also another case for this kind of error

сделал


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

Edit: игнорировать это. У меня была такая же банка в папке Maven dependencies и libs. Я убрал в папку lib.


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


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

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


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


выберите проект, в Project Explorer щелкните правой кнопкой мыши и выберите свойства ->Путь Сборки Java ->источник -> установите флажок разрешить выходные папки для исходных папок


Я в основном столкнулся с той же проблемой. Я удалил папку BIN, затем удалил неиспользуемые файлы jar для заказа и импорта из eclipse. Это сработало после этого


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

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

проблема для меня была связана с библиотечными проектами, мое приложение ссылается как на стандартные проекты java, так и на проекты библиотек android. Я заметил, что настройки пути сборки Java включали проекты библиотеки android src и папки res в списке источников (upvotes to каждый, кто упоминает bin в источнике, является проблемой, src и res также были проблемой.)

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

  1. удалите все ссылки на исходные библиотеки Android и ссылки на проекты из раздела Java Build Path настроек как в списке источников, так и в списке проектов
  2. убедитесь, что чистые зависимости java перечислены в списке проектов и проверены на вкладке порядок и экспорт, чтобы классы были включены в apk
  3. убедитесь, что все Android зависимости библиотек перечислены в разделе свойств проекта Android в разделе библиотеки под проверенными версиями SDK.

Это было по пути, чтобы собрать все это вместе из других решений! Фу!


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


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

я переместил файлы, расположенные в каталоге BIN моих проектов, в BIN / CLASSES и im и работает.

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

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

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

Так ответ: нет файлов в обоих местах. по крайней мере для меня это сработало.


изменить затмение.ini file и установите максимальный параметр памяти в

-Xmx1024m

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

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


нашел решение, я полагаю??

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

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


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


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


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

  1. РЕЗЕРВНОЕ КОПИРОВАНИЕ КОДА!
  2. перейдите в рабочую область проекта (не в проект) и выполните следующие команды:

    dev1: workspace$ cd ~ / документы/рабочее пространство/.метаданные./подключаемый модуль/ dev1: рабочая область$ rm-rf org.затмение.ядро.ресурсы

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

    dev1: eclipse$ ./ затмение ясно

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

точная ошибка, которую я получал: [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 / поддержка / v4 / просмотр / PagerAdapter;


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


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


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


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


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

удалив дубликат библиотеки "JAR-файл", затем удалите BuildConfig.java-файл, чистый проект и его работа.