2016-12-01 2 views
0

I 2 Dritter aar Abhängigkeiten in meinem Android-Projekt undausschließen doppelten Eintrag auf zwei aar Android

sie beide gleiche Encoding-Bibliothek org.spongycastle.util genannt verwenden verwendet haben.

Aber Problem hier ist, wenn ich es kompiliert es auf Gradle Fehler zeigt

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'. 
> com.android.build.api.transform.TransformException:java.util.zip.ZipException: duplicate entry: org/spongycastle/util/encoders/Base64.class 

ich auf Gradle complie von

eine Abhängigkeit von aar auszuschließen versucht
compile(name: 'libraryname', ext: 'aar') { 
    exclude group: 'org.spongycastle.util' 
} 

aber kein Glück zu lösen Problem :(

Jede Hilfe würde geschätzt, um eine Abhängigkeit auszuschließen oder zu ignorieren

+0

Hallo, hast du dieses Problem irgendwann gelöst? Ich stehe mit diesem identischen Fehler fest. –

+0

Hallo Kumpel Ich löste es, indem ich die Klassennamen der SpongyCastle änderte, da ich es nicht schaffte, org.spongycastle auf aar auszuschließen. Es ist nicht empfehlenswert, aber es funktioniert. – WinHtaikAung

+0

cool, aber können Sie erklären, was genau Sie meinen, indem Sie die Klassennamen ändern? Ich meine, ich habe nur zwei Jahre in meinem Projekt und beide haben Spongycastle Gläser unter der Haube und benutzen sie intern, ich brauche nichts von Spongycastle explizit zu verwenden. –

Antwort

0

Es sieht so aus, als ob die JAR-Datei org.spongycastle.util selbst den doppelten Eintrag enthält. Ich habe das gleiche Problem in einer xmlbean-JAR-Datei gesehen. Android mag den doppelten Eintrag jedoch nicht. Eine Möglichkeit, dies zu umgehen, besteht darin, diese bestimmte JAR-Datei herunterzuladen und einen der doppelten Einträge zu löschen und das geänderte JAR zu Ihrem libs-Ordner hinzuzufügen. Darüber hinaus müssen Sie es von der entsprechenden Kompilierungsabhängigkeit ausschließen, mit der es verknüpft ist. Sie müssen testen, um sicherzustellen, dass das Löschen eines der Duplikate nichts beschädigt. Wenn der Inhalt der zwei doppelten Klassen äquivalent ist, hätte das Löschen eines der Duplikate keine Konsequenzen.

Verwandte Themen