UNERWARTETE SPITZEN AUSNAHME: com.android.dex.DexException : Mehrere Index -Dateien definieren

? jghg02 @ | Original: StackOverFlow
---

Ich habe ein Problem versuchen zu verwenden ein Google-Play- Dienste auf meinem Android- App mit Android Studio .

Ich habe alles versucht und immer noch nicht funktioniert .

Dies ist der Fehler.

Execution failed for task ':app:dexDebug'.

Danke Shon. Beste Grüße.

---

Top 5 Antwort

1iTapAndroid @

Ihr Google- Play-Services -Bibliothek ist gegen andere Abhängigkeiten Ihres Projektes exportiert und an der Kompilierung der Index -Compiler durcheinander .

Wenn Sie Gradle sind dann auch diese in build.gradle Ihres Projekts sollte die Unterstützung Bibliothek aus, die in das Hauptprojekt exportiert auszuschließen.

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'
}

Wenn Sie die Andoid Studio Build-System sind . Dann sollten Sie auf Datei -> Projektstruktur und deaktivieren -> Module . Gehen Sie durch die einzelnen Module und klicken Sie auf die Registerkarte Abhängigkeiten, deaktivieren Sie das Export -Spalte für die Unterstützung Bibliothek und Google Play Services Bibliothek.

Kommentare zu schreiben, wenn Sie weitere Hilfe benötigen .

2Gene @

Der Fehler tritt auf, wenn Sie die gleiche Bibliothek / Verzeichnis enthalten mehr als einmal in die Abhängigkeiten ihres build.gradle . Ok, sagen wir, Sie eine App -Struktur, die wie folgt aussieht:

UNERWARTETE SPITZEN AUSNAHME: com.android.dex.DexException : Mehrere Index -Dateien definieren

So haben Sie die wichtigsten "app" und dann können Sie eine Reihe von Sub- apps / modules / Bibliotheken haben . Die Bibliotheken sind: 1) gene_test_library, 2) genes_nine_old_androids_library, & amp; 3) swipe_list_view_library .

Mein Name ist Gene, ist also, warum gibt es all diese "Gen" Bibliotheken.

Im Inneren des build.gradle für " App ", habe ich :

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')
}

Im Inneren des build.gradle für gene_test_library, ich habe nichts :

dependencies {
}

Innerhalb build.gradle für gene_nine_old_androids_library, ich habe :

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

Innerhalb build.gradle für swipe_list_view_library, ich habe :

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

Diese Codezeile " kompilieren Dateibaum (dir : ' Bibliotheken ', sind: [' * .jar ']) " bedeutet nur, " hey, innen Ordner" libs " Blick ins Innere dieses Modul für alle JAR-Dateien . Ich habe nichts in der Ordner libs eines der Module, so dass Sie diese Codezeile kann ignorieren.

Also lassen Sie uns sagen, dass ich das Kommentarzeichen aus // kompilieren Projekt ( ': Bibliotheken : genes_nine_old_androids_library ') Im build.gradle für die " App " -Modul. Fehler : Dann würde ich die " UNERWARTETE SPITZEN AUSNAHME " zu bekommen. Warum ist das so?

UNERWARTETE SPITZEN AUSNAHME: com.android.dex.DexException : Mehrere Index -Dateien definieren

Nun, das Schreiben // kompilieren Projekt ( ': Bibliotheken : genes_nine_old_androids_library ') im Inneren des build.gradle für " App ", ist die gleiche wie unter die Build-Abhängigkeiten des " genes_nine_old_androids_library " Modul und setzen Sie ihn dort. Also den Kommentar für // kompilieren Projekt ( ': Bibliotheken : genes_nine_old_androids_library ') Rechnung, build.gradle für "app" Modul wird :

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')
}

Beachten Sie, wie jetzt " zusammenstellen " com.android.support:appcompat-v7:21.0.0 ' "erscheint 2x . Das ist, wo der Fehler kommt.