2016-12-01 1 views
0

J'ai utilisé 2 tiers AAR dépendances dans mon projet Android etNe comptez pas entrée en double sur deux AAR Android

les deux utilisent même encodage bibliothèque appelée org.spongycastle.util.

Mais le problème est ici quand je compilé il affiche une erreur sur Gradle

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 

J'ai essayé d'exclure une dépendance de AAR sur Gradle complie par

compile(name: 'libraryname', ext: 'aar') { 
    exclude group: 'org.spongycastle.util' 
} 

Mais pas de chance d'émission de résolution :(

Toute aide serait appréciée pour exclure ou ignorer une dépendance

+0

Salut, avez-vous résolu ce problème éventuellement? Je suis coincé avec cette erreur identique. –

+0

Salut mate Je l'ai résolu en changeant les noms de classe du SpongyCastle car je ne pouvais pas arriver à 'exclure org.spongycastle' sur aar.Its pas recommandé, mais cela fonctionne. – WinHtaikAung

+0

cool, mais pouvez-vous expliquer ce que vous voulez dire exactement en changeant les noms de classe? Je veux dire, j'ai juste deux aars dans mon projet et les deux ont des bocaux Spongycastle sous le capot et les utilisent en interne, je n'ai pas besoin d'utiliser quoi que ce soit de Spongycastle explicitement. –

Répondre

0

Il semble que le fichier jar org.spongycastle.util lui-même contient l'entrée en double. J'ai vu ce même problème dans un fichier jar xmlbean. Android n'aime cependant pas l'entrée en double. Une façon de contourner ce problème consiste à télécharger ce fichier jar particulier et à supprimer l'une des entrées en double et à ajouter le fichier jar modifié dans votre dossier libs. En outre, vous devrez l'exclure de la dépendance de compilation appropriée à laquelle il est associé. Vous devrez tester pour être sûr que la suppression d'un des doublons ne casse rien. Si le contenu des deux classes dupliquées est équivalent, la suppression de l'un des doublons n'aura aucune conséquence.