2016-02-05 23 views
7

EDIT: Giải pháp từ Error: java.util.zip.ZipException: duplicate entry không làm việc ở đây, bởi vì tôi không có vấn đề với module hỗ trợ-v4Đối phó với các mục trùng lặp trong AndroidStudio: java.util.zip.ZipException

Tôi đang cố gắng để xây dựng một dự án Android sử dụng SpongyCastle, nhưng tiếc là nó yêu cầu javax.naming gói từ thư viện jndi. tôi thêm jndi và thậm chí JavaEE để làm cho nó hoạt động, nhưng gradle vẫn có vấn đề với chạy một dự án (xây dựng thành công)

tập tin gradle.build của tôi:

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 ném lỗi này:

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

Khi tôi cố gắng loại trừ javax.mail từ javax:javaee-api:7.0 tôi nhận:

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 

Tôi có thể tìm thấy bản sao của javax.mail này bằng cách nào tôi thậm chí không cần?

+1

Bản sao có thể có của [Lỗi: java.util.zip.ZipException: duplicate entry] (htt p: //stackoverflow.com/questions/30769483/error-java-util-zip-zipexception-duplicate-entry) – Harshad

Trả lời

4

Để đúng cách bao gồm SpongyCastle tôi bị buộc phải thay đổi phụ thuộc:

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' 
} 

Tạo một lớp chèn BouncyCastle Provider

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

và bao gồm nó trong AndroidManifest.xml dưới "ứng dụng" tag :

... 
    <application 
      android:name="Dynks" 
... 
Các vấn đề liên quan