2017-09-05 2 views
42
Error:java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 
Error:java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 
Error:com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex 
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/zxing/integration/android/IntentResult; 
+0

Show 'build.gradle' –

+1

@IntelliJAmiya Dies ist kein Duplikat der gemeldeten Frage. Zumindest für mich begann das Problem mit AS 3.0 beta 4 und ich verwende bereits multidex. – ADev

+0

Wie? Ich habe keine Privilegien, ich denke – ADev

Antwort

15

So löste ich dieses Problem, indem Sie folgendermaßen vorgehen:

  • löschen ./gradle Ordner in Ihrem Projekt
  • löschen Sie alle Ordner erstellen und die gradle Cache . Ich habe den folgenden Befehl ausgeführt:

Wie?

cd ~/[your project root folder] && find . -name build -exec rm -rf {} \; && rm -rf $HOME/.gradle/caches/ 

Ihre gradle Konfigurationsdateien Unter der Annahme sind im $HOME/.gradle Ordner.

  • Innerhalb Android Studio, ging zu File > Invalidate caches/Restart... und die Caches ungültig gemacht und neu gestartet.
  • +2

    Delete .gradle Ordner behebt mein Problem. Danke für die Hilfe! –

    +20

    Das gleiche Problem auf AS 3.0 Beta 7, leider funktioniert das immer noch nicht für meinen Fall. – Kikiwa

    +3

    Haben alle oben genannten Lösung versucht aber nicht für AS 3.0 beta 7. Bitte helfen Sie mir –

    48

    Ich habe dasselbe Problem mit Android Studio 3.0 Beta 4. Ich habe eine Lösung gefunden

    1. Drücken Sie im Menü Build auf die Schaltfläche Clean Project.

    Clean Project

    2. Nach der Task abgeschlossen ist, drücken Sie die Taste Rebuild Project vom Build Menü.

    enter image description here

    +0

    Ich bin glücklich, Teil der Lösung Ihres Problems zu helfen –

    +6

    Funktioniert nicht in Android Studio 3.0 RC2 –

    +0

    Ich frage mich, warum ist die Antwort nicht nützlich und warum Bericht die Antwort? @SagarTrehan –

    8

    Sie sollen mit der Überprüfung der Abhängigkeit mit gradle und auf der Suche nach Duplikaten wie dies auf die Ursache dieses Fehlers zu erhalten fähig sein: ./gradlew -q app:dependencies

    In meinem Fall wird der folgende Fehler war bei der Erstellung geschieht:

    Duplicate zip entry [httpcore-4.4.1.jar 
    

    und es wurde, indem sie diese in meinem build.gradle gelöst:

    implementation ('me.dlkanth:stetho-volley:1.0') { 
        exclude group: 'org.apache.httpcomponents' 
    } 
    
    +1

    In meinem Fall wurde 'com.android.volley' irgendwie zweimal hinzugefügt, ich habe auch die exclude-Anweisung hinzugefügt, jetzt funktioniert es gut. –

    +0

    das Ausführen dieses Skripts gab mir 'konnte nicht feststellen, Java-Version von 9.0.1'. Ich aktualisierte Gradle von 4.1 bis 4.2.1 mit Android Studio 3.0 – androidtitan

    +0

    @androidtitan Nur Java 8 funktioniert mit Android –

    1

    Dieser Fehler kann mehrere Ursachen haben. Kein sauberes und wieder aufgebaut oder so etwas hat mir den Job gemacht.

    Für mich war das Problem der Abhängigkeit:

    compile 'org.jetbrains:annotations-java5:15.0' 
    

    ich es entfernt, und alles hat gut funktioniert.

    +0

    Wie hast du diese Schlussfolgerung erhalten? Durch Ausprobieren? –

    22

    Für Android Studio 3.0, was ich tat, war dies mein gradle hinzuzufügen:

    multiDexEnabled true 
    

    Und es hat funktioniert!

    Beispiel

    android { 
        compileSdkVersion 25 
        buildToolsVersion '26.0.2' 
        defaultConfig { 
         applicationId "com.xx.xxx" 
         minSdkVersion 15 
         targetSdkVersion 24 
         versionCode 9 
         versionName "1.0" 
         multiDexEnabled true //Add this 
         testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
        } 
        buildTypes { 
         release { 
          shrinkResources true 
          minifyEnabled true 
          proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 
         } 
        } 
    } 
    
    +6

    für mich, löst dies nicht das Problem ... Ich arbeite immer noch daran, es zu lösen .. – Hpsaturn

    +0

    Versuchen Sie diese Schritte: Löschen Sie .gradle, reinigen und neu erstellen. Vergessen Sie auch nicht add multiDexEnabled. Hoffe, es hilft – Prodigy

    0

    In meinem Fall war der Täter SendGrid lib, hat dieses Bild und es behoben wurde:

    compile 'com.github.danysantiago:sendgrid-android:1',{ 
        exclude group: 'org.apache.httpcomponents', module: 'httpclient' 
    } 
    
    0

    I Studio 3.0.0 Release verwenden. In meinem Fall gab es die einzige Lösung: Ich habe alte JARs aus dem Ordner "libs" in meinem Projekt entfernt: Es war "ksoap2" Paket mit Abhängigkeiten. Pakete, die mit Gradle erstellt wurden, stehen normalerweise nicht miteinander in Konflikt, zumindest wenn Sie die beliebtesten verwenden. Aber ein alter JAR in libs-Ordner kann Ihren Build zerstören, wenn er alle eigenen Abhängigkeiten enthält.

    6

    Überprüfen Sie Ihre Abhängigkeiten für die neueste Version in der Regel ist es Inkonsistenz mit der Version Ihrer Abhängigkeiten.

    1.Build> Sauber Projekt 2. Erstellen Sie Ihr Projekt

    Überprüfen Sie das ausführliche Protokoll für die Abhängigkeit der Merge-Problem verursacht und die gleiche aktualisieren. Wiederholen Sie das gleiche für jede Abhängigkeiten.

    1

    Ändern Sie "kompilieren" zu "compileOnly" das ist, was für mich arbeitete.

    -1

    diese gelöst durch die Android Data Binding-Bibliothek zu entfernen:

    dataBinding { 
        enabled = true 
    } 
    
    +0

    Dies ist keine gültige Antwort, weil Sie Databinding nicht verwenden können. Wenn es für Sie funktioniert, bedeutet nur, dass Sie nicht Datenbindung in Ihrer App verwenden – x10sion

    7

    Versuchen Sie diesen Code in Gradle, ist es für mich gearbeitet ..

    android { 
         defaultConfig { 
          multiDexEnabled true 
         } 
        } 
    
    +0

    Wenn der obige Code nicht funktioniert, dann überprüfen Sie Ihre Bibliothek in der Gradle, indem Sie den Cursor darauf, wenn es neue Version dann aktualisieren, synchronisieren , Projekt säubern, Projekt neu erstellen und ausführen. hoffentlich wird es für dich arbeiten. – Opriday

    +0

    dieser macht den Trick: D – Fahad

    +0

    Dieser Code funktioniert für Android 5.1 und höher ... für die unten Android-Version .. gibt es eine andere Möglichkeit, Multidex-Unterstützung hinzuzufügen. https://developer.android.com/studio/build/multidex.html – Relsell

    3

    ich konfrontiert gleiche Problem in Android Studio 3.0.1 habe ich versucht, alle möglichen Fälle nichts für mich gearbeitet, wie oben erwähnt, schließlich löste ich es von

    Solution1:

    • Schließen Android Studio
    • .gradle Ordner auf C:\Users\YourComputerName\.gradlenicht aus der App entfernt löschen .gradle
    • Restart android Studio

    Es wird alle notwendigen Gläser herunterladen und

    Solution2 zu Ihrem Build-Pfad hinzufügen:

    • Löschen von doppelten jar aus libs Ordner in app/libs
    • Rerun die App wieder

    Weil, wenn es doppelte JAR-Datei gibt, die bereits in build.gradle Datei definiert ist, verursacht es Problem.

    Dies löste das Problem für mich. Es kann anderen helfen ..

    +0

    was ist mit einem Linux-Benutzer? Derselbe Fehler, den ich bekomme. Bitte führen Sie mich –

    +0

    Tun Sie das gleiche, was ich in Ihrem Linux erwähnt. Das heißt, gehen Sie zum Terminal die Position von .gradle wäre etwas wie '~ \ .gradle \' –

    +0

    Ich versuche, aber es ist nicht sichtbar .. Welchen Ort, den Sie versuchen zu erklären? Wo habe ich mein Android-Studio oder meinen Projektstandort installiert? –

    0

    I Android Studio 3.0.1 Build # AI-171,4443003 verwende, am 9. November gebaut 2017

    ich jar-Datei aus libs Ordner löschen. Und das funktioniert gut für mich

    0

    Irgendwann kann es passieren, dass die gleiche Bibliothek (JAR-Datei) zwei Mal vorhanden ist oder Ihr Projekt hat 64 k Methoden Grenze erreicht.

    Lösung: 1) Entfernen Sie Datenbindung, wenn Ihr Projekt dieses 2) gleichen aus lib Ordner-Typ-Bibliothek entfernen verwenden oder löschen .gradle Datei von c // user // your_pc // gradle 3) gelten diese in. Ihre build.gradle

    android { 
        defaultConfig { 
         multiDexEnabled true 
        } 
    } 
    
    Verwandte Themen