Umgang mit doppelten Einträgen in AndroidStudio: java.util.zip.ZipException

EDIT: Lösung von Error: java.util.zip.ZipException: Duplikat Eintrag funktioniert hier nicht, denn ich habe kein Problem mit support-v4 Modul

Ich versuche, ein Android-Projekt zu bauen, das SpongyCastle verwendet, aber leider benötigt es javax.naming Paket von jndi Bibliothek. Ich habe jndi und sogar javaEE, um es funktionieren, aber gradle hat immer noch Probleme mit dem Ausführen eines Projektes (Build ist erfolgreich)

Meine gradle.build Datei:

 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "grylls.cryptotexting" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" multiDexEnabled true } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'javax:javaee-api:7.0' compile files('lib/jndi-1.2.1.jar') } 

Gradle wirft diesen Fehler auf:

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

Als ich versuchte, javax.mail aus javax:javaee-api:7.0 auszuschließen javax:javaee-api:7.0 Ich habe:

 Error:Execution failed for task ':app:transformClassesWithDexForDebug'. > com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_40\bin\java.exe'' finished with non-zero exit value 1 

Wo finde ich diese Vervielfältigung von javax.mail, die übrigens nicht einmal brauche?

One Solution collect form web for “Umgang mit doppelten Einträgen in AndroidStudio: java.util.zip.ZipException”

Um SpongyCastle richtig einzuschließen, musste ich eine Änderung in Abhängigkeiten vornehmen:

 dependencies { testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.madgag.spongycastle:core:1.51.0.0' compile 'com.madgag.spongycastle:prov:1.51.0.0' compile 'com.madgag.spongycastle:pkix:1.51.0.0' compile 'com.madgag.spongycastle:pg:1.51.0.0' } 

Erstellen Sie eine Klasse, die BouncyCastle Provider einfügt

 import android.app.Application; import java.security.Security; public class Dynks extends Application { static { Security.insertProviderAt(new org.spongycastle.jce.provider.BouncyCastleProvider(), 1); } } 

Und füge es in AndroidManifest.xml unter "application" tag ein:

 ... <application android:name="Dynks" ... 
Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.