Неожиданное исключение верхнего уровня: com.android.dex.DexException : Несколько Dex файлы определяют

? jghg02 @ | Original: StackOverFlow
---

У меня естьпроблема, пытаясь использоватьGoogle Play Services на моем Android приложение, с помощью Android Studio.

Я пробовал все, и до сих пор не работает.

Это ошибка .

Execution failed for task ':app:dexDebug'.

Спасибо. С Уважением.

---

Top 5 ответ

1iTapAndroid @

Ваше Google библиотека мультисервисных услуг экспортируется из других зависимостей вашего проекта и в процессе компиляциикомпилятор Dex путается .

Если вы используете Gradle то в том числе это в build.gradle вашего проекта должна исключать поддержку библиотеки из экспортируются в основной проект.

apply plugin: 'android'
apply plugin: 'crashlytics'

/** Must exclude exported support jars from dependencies, or get dex duplicate class      error.
*  we're
**/
configurations {
    all*.exclude group: 'com.android.support', module: 'support-v4'
    all*.exclude group: 'com.google.android.gms', module: 'play-services'
}

Если вы используете Andoid систему студия сборки. Тогда вы должны пойти в Файл -> структуру проекта и отключить - > модули. Пройдите каждого модуля и нажмите на вкладке зависимостей, снимите колонку на экспорт в для библиотеки поддержки и Google Play библиотечной системы .

Дать комментарии, если вам нужна дополнительная помощь .

2Gene @

Ошибка возникает, когда у вас естьта же библиотека / каталог включены более чем один раз в зависимости вашего build.gradle -х годов. Хорошо, давайте говорить у вас есть структуру приложений, который выглядит следующим образом:

Неожиданное исключение верхнего уровня: com.android.dex.DexException : Несколько Dex файлы определяют

Так у вас есть главный " приложение ", а затем у вас есть куча суб- приложений / модулей / библиотек. Библиотеки являются: 1 ) gene_test_library, 2 ) genes_nine_old_androids_library, и усилитель ; 3 ) swipe_list_view_library .

Меня зовут Джин, так что это, почему все эти "ген" библиотеки .

Внутри build.gradle для " приложение ", у меня есть:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    //compile project(':libraries:genes_nine_old_androids_library')
    compile project(':libraries:swipe_list_view_library')
}

Внутри build.gradle для gene_test_library, я ничего не имею :

dependencies {
}

Внутри build.gradle для gene_nine_old_androids_library, у меня есть:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

Внутри build.gradle для swipe_list_view_library, у меня есть:

dependencies {
    compile 'com.nineoldandroids:library:2.4.0+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

Эта строка кода " собрать дереве файлов (реж : " LIBS ", включают в себя: [' * .jar '] ) " просто означает " эй, посмотрите в папке" Libs " внутри этого модуля для любых файлов JAR . Я ничего не имею в LIBS папке любого из модулей, так что вы можете игнорировать эту строку кода.

Так что давайте говорить, что я раскомментировать из // компиляцию проекта (': библиотеки: genes_nine_old_androids_library ') В build.gradle для модуля " App" . Тогда я хотел бы получить " Неожиданное исключение верхнего уровня: " ошибке. Почему это?

Неожиданное исключение верхнего уровня: com.android.dex.DexException : Несколько Dex файлы определяют

Ну, писать // компиляцию проекта (': библиотеки: genes_nine_old_androids_library ') внутри build.gradle для "приложение ", то же самое, как и прием построения зависимостей модуля " genes_nine_old_androids_library " и положить его там. Так раскомментирован // компиляции проекта (': Библиотеки: genes_nine_old_androids_library ') о ,build.gradle для модуля " App" становится :

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:21.0.0'

    compile project(':libraries:gene_test_library')
    ***compile fileTree(dir: 'libs', include: ['*.jar'])***
    ***compile 'com.android.support:appcompat-v7:21.0.0'***
    compile project(':libraries:swipe_list_view_library')
}

Обратите внимание, как теперь " компиляции " com.android.support:appcompat-v7:21.0.0 " " появляется 2x. Вот гдеошибка и откуда.