2016-10-29 8 views
1

Als ich synchronisieren das Projekt alles in Ordnung ist, aber wenn ich versuche ich diesen Fehler habe zu laufen:java.util.zip.ZipException: doppelte Eintrag: Dolch/Provides.class

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: dagger/Provides.class

Hier meine app build.gradle:

apply plugin: 'com.android.application' 
apply plugin: 'android-apt' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.2" 
    defaultConfig { 
     applicationId "appID" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 

    compile 'com.android.support:appcompat-v7:23.0.0' 

    compile 'com.jakewharton:butterknife:8.4.0' 
    apt 'com.jakewharton:butterknife-compiler:8.4.0' 

    apt 'com.google.dagger:dagger-compiler:2.5' 
    compile 'com.google.dagger:dagger:2.5' 
    provided 'javax.annotation:jsr250-api:1.0' 

    compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' 

    compile('com.sumup:merchant-sdk:[email protected]') { 
     transitive = true 
    } 
} 

Wenn ich laufen ohne compile 'com.google.dagger:dagger:2.5' es Erfolg ist zusammengestellt .. bitte helfen.

+2

Vielen Dank für die Antwort auf Ihre eigene Frage! Sie erwähnen "die Frage kann geschlossen werden", aber ich denke, dass Ihre Frage gültig ist und Ihre Antwort nützlich ist, und dass zukünftige Leser möglicherweise zusätzliche nützliche Informationen haben, um beizutragen. Bitte bearbeiten Sie Ihre Antwort aus der Frage und in eine [Selbstantwort] (http://stackoverflow.com/help/self-answer), die Sie dann richtig akzeptieren können, um die Frage als erledigt zu markieren. –

Antwort

1

UPDATE:

Es looks like SUMUP sdk ist nicht kompatibel mit Dolch 2. +.

Also habe ich Downgrade auf Dolch 1. + und es funktioniert ok. Bis jetzt sind keine weiteren Probleme aufgetreten.

+1

Danke, dass Sie das herausgefunden haben. Ich habe den Fehler mit der Lösung des Problems kommentiert, also wird es mit etwas Glück kein Problem sein. – gk5885

1

Bevor Herabstufung, würden Sie prüfen, versuchen compile 'com.google.dagger:dagger:2.5' mit folgenden ersetzen:

compile ('com.google.dagger:dagger:2.0') { 
    exclude group: 'javax.inject' 
} 

Dies wird die doppelte Klasse auszuschließen.

+0

hast du es getestet? – hackingforgirls

+0

Ich hatte ein ähnliches Problem mit einer doppelten "Bietet" -Klasse in "Espresso", die mit Dolch 2 nicht gut spielen würde. Der Code, den ich oben zitiert habe, löste das Problem in unserem Projekt, aber Ihre Laufleistung kann variieren. –

+0

von ihrer [Dokumentation] (https://github.com/sumup/sumup-android-sdk/issues/12) gibt es keine Umgehung mit Dolch 2. Ich habe es mit Ihrer Version testen, aber es hat nicht funktioniert. – hackingforgirls

0

Ich hatte das ähnliche Problem, als wir zu Dolch gewechselt haben.

Wir verwenden die gleichen Paketnamen in verschiedenen Artefakten für die Klassen @Component und @Module, und der Dolch erzeugte die gleiche Datei Dagger...Component.java in jedem Artefakt, in dem wir das gleiche Paket verwenden.

Nachdem wir die Komponenten in einzelne Artefakte in einzigartige Pakete verschoben haben, wurde das Problem damit gelöst.

Verwandte Themen