Ошибка сборки Android Studio — несколько файлов dex определяют Landroid/support/v4/

Я не могу создать свой проект в Android Studio. Я получаю следующую ошибку:

Error:Android Dex: [RaditazAndroid] Unable to execute DX
Error:Android Dex: [RaditazAndroid] com.android.dx.util.DexException: Multiple dex files define Landroid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat$AccessibilityServiceInfoVersionImpl;
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:592)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:550)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:531)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.mergeDexBuffers(DexMerger.java:168)
Error:Android Dex: [RaditazAndroid] at com.android.dx.merge.DexMerger.merge(DexMerger.java:186)
Error:Android Dex: [RaditazAndroid] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:300)
Error:Android Dex: [RaditazAndroid] at com.android.dx.command.dexer.Main.run(Main.java:232)
Error:Android Dex: [RaditazAndroid] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
Error:Android Dex: [RaditazAndroid] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
Error:Android Dex: [RaditazAndroid] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
Error:Android Dex: [RaditazAndroid] at java.lang.reflect.Method.invoke(Method.java:597)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.android.compiler.tools.AndroidDxRunner.runDex(AndroidDxRunner.java:147)
Error:Android Dex: [RaditazAndroid] at org.jetbrains.android.compiler.tools.AndroidDxRunner.main(AndroidDxRunner.java:276)
Error:Android Dex: [RaditazAndroid] at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:121)

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


person IgorGanapolsky    schedule 18.08.2013    source источник


Ответы (11)


Кому интересно, решил свою проблему. Моя ошибка заключалась в том, что я вставил android-support-v4.jar и google-play-services.jar во все папки библиотек модулей моего проекта (мой проект состоит из 3 модули). Вместо этого мне нужно было вставить эти jar-файлы только в папку lib моего основного модуля, и другие модули автоматически ссылались на них.

person IgorGanapolsky    schedule 18.08.2013
comment
это не та же причина для этой проблемы, с которой я сталкиваюсь... я опубликую то, что придумал для решения, когда доберусь туда - person JMRboosties; 26.10.2013
comment
@JMRboosties По моему опыту, эта ошибка возникает из-за дублирования файлов jar в папках lib. В вашем случае не так? - person IgorGanapolsky; 26.10.2013
comment
Спасибо, решено. Думаю, наличие 2 копий одной и той же библиотеки sup вызывает ошибку. - person alicanbatur; 12.11.2013
comment
Спасибо за решение и комментарии, это сэкономило мне много времени! - person WhileTrueSleep; 05.02.2015
comment
Это сработало, но мне пришлось выполнить проект перестройки, чтобы ошибка действительно исчезла. - person Lee; 10.03.2015
comment
Что делать, если у меня один модуль и я получаю эту ошибку? @ИгорьГанапольский - person Kaushal28; 18.08.2016
comment
@NoOne Это может быть связано с конфликтующими транзитивными зависимостями в Gradle. Запустите ./gradlew -q app:dependencies, чтобы узнать, какие из них. - person IgorGanapolsky; 18.08.2016
comment
Я новичок. Где я должен запустить это? - person Kaushal28; 18.08.2016

Вдали от Android Studio я открыл проект в Finder/Workspace и сделал следующее:

1- Папка MyProject -> сборка -> промежуточный -> dex-cache -> cache.xml и удалены все элементы support-v4.jar.

2- Также вдали от Android Studio, перешел к каждому модулю в моем проекте -> папка lib -> и также удалил support-v4.jar.

Затем очистил проект и запустил его, и это сработало, слава богу :)

person fullmoon    schedule 13.01.2015
comment
решение работает, у меня были проблемы с okhttp-2.5.0.jar. Затем, выполняя шаги, проект был построен. - person Alexandr; 02.12.2015

У меня была такая же ошибка. Решил ее, добавив в файл gradle.

    dependencies{
        compile 'com.google.android.gms:play-services:8.3.0'
        compile 'com.android.support:appcompat-v7:23.1.0'
        compile 'com.android.support:support-v4:23.1.0'
    } 
person BMS    schedule 16.12.2015

Если у вас есть:

compile 'com.android.support:recyclerview-v7:24.2.0'
compile('com.android.support:appcompat-v7:23.2.0') { exclude group: 'com.google.android', module: 'support-v4' }

в свой проект добавьте также:

compile 'com.android.support:support-v4:24.2.0'

or

compile 'com.android.support:design:24.2.0'
person careful7j    schedule 20.09.2016
comment
Вы спасли мне жизнь после 3 дней работы, пытаясь выяснить, что случилось с чепухой AS. Просто раздражает то, что инженеры Google ничего не делают, чтобы смягчить нашу боль. - person The_Martian; 27.09.2016

В моем случае проблема была в версии SDK модуля. Поменял с 2.2 на 4.4 и проблема решилась.

person 3akat    schedule 30.12.2013
comment
Вы имеете в виду minSdkVersion или targetSdkVersion? - person IgorGanapolsky; 30.12.2013
comment
Я имел в виду версию билдера sdk. Посмотрите: Структура проекта->Модули->Module SDK - person 3akat; 04.01.2014

У меня была такая же ошибка.

Мне помогло удаление библиотеки (jtwitter.jar) из папки my-project/app/libs.

Затем очистил проект и запустил его, и он заработал.

person shoaib shaikh    schedule 13.02.2015

Очистка и восстановление — это все, что мне нужно, чтобы начать работать.

person tg2    schedule 03.03.2016

Если у кого-то возникла эта проблема с примерами Project Tango, предоставленными через Github, я решил это, закомментировав следующую строку в файле build.gradle приложения для тех проектов, которые не удалось запустить:

compile fileTree(dir: external_lib_prefix + '/jar', include: ['**/*.jar'])

person Christian Steinmeyer    schedule 04.05.2016

Я использовал другой подход, объединив папку ABS res с моей папкой res и используя ActionBarSherlock.jar в качестве глобальной библиотеки.

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

Основной причиной проблемы является использование android-support-v4 в ABS и моем проекте, что усложняет DEX.

person Gayan Pathirage    schedule 01.02.2014
comment
Звучит неплохо. Предположительно вы можете использовать Gradle в Eclipse, хотя я никогда не пробовал. Во всяком случае, я нахожусь в аналогичном положении — я использую Gradle в Android Studio — и никто из моих товарищей по команде этого не делает. Но я обнаружил, что все еще могу использовать его, не конфликтуя с другими. - person IgorGanapolsky; 02.02.2014

У меня была такая же проблема в Android Studio 2.3, в моем случае у меня была смесь номеров версий, которые выбросили сборку, я изменил:

dependencies {
    compile 'com.google.android.gms:play-services-wearable:7.5.0'
    compile 'com.google.android.gms:play-services-analytics:7.5.0'
    compile 'com.google.android.gms:play-services-drive:8.4.0'
}

to

dependencies {
    compile 'com.google.android.gms:play-services-wearable:8.4.0'
    compile 'com.google.android.gms:play-services-analytics:8.4.0'
    compile 'com.google.android.gms:play-services-drive:8.4.0'
}
person ScottFree    schedule 29.03.2017

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

Для меня проблема началась, когда я добавил библиотеку Glide.

dependencies {
  .........
  implementation 'com.github.bumptech.glide:glide:4.8.0'
  .........
}

а я уже добавил.

implementation 'com.android.support:design:26.1.0'

Что где-то противоречило библиотеке поддержки Glide.

Решение: удалите или понизьте версию поддержки Glide.

 implementation 'com.github.bumptech.glide:glide:4.0.0'
person vikas kumar    schedule 18.08.2018