Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 带有spongycastle LICENSE.class的java.util.zip.ZipException_Android_Android Studio_Android Gradle Plugin_Build.gradle - Fatal编程技术网

Android 带有spongycastle LICENSE.class的java.util.zip.ZipException

Android 带有spongycastle LICENSE.class的java.util.zip.ZipException,android,android-studio,android-gradle-plugin,build.gradle,Android,Android Studio,Android Gradle Plugin,Build.gradle,我试图包含两个不同的第三方LIB,它们似乎都包含了不同版本的海绵城堡。两者都是通过my build.gradle中的compile语句包含的,其中一个作为AAR(@AAR)包含,而另一个作为常规包含 当我尝试用这两个lib编译调试buildType时(sync没有显示问题)。我看到了以下几点: 错误:任务的执行失败 “:app:transformClassesWithJarMergingForDebug” com.android.build.api.transform.TransformExce

我试图包含两个不同的第三方LIB,它们似乎都包含了不同版本的海绵城堡。两者都是通过my build.gradle中的compile语句包含的,其中一个作为AAR(
@AAR
)包含,而另一个作为常规包含

当我尝试用这两个lib编译调试buildType时(sync没有显示问题)。我看到了以下几点:

错误:任务的执行失败 “:app:transformClassesWithJarMergingForDebug”

com.android.build.api.transform.TransformException:java.util.zip.zipeException:重复条目: org/spongycastle/LICENSE.class

一直在寻找如何解决这个问题,同时保留这两个库(因为这两个库都是必需的),但一直无法找到一种方法来做到这一点。任何来自高级Android开发人员或gradle专家的帮助都将不胜感激

谢谢

[build.gradle]

apply plugin: 'com.android.application'

repositories {
    maven { url 'http://mobile-sdk.jumio.com' }
}

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    packagingOptions {
        pickFirst 'org/spongycastle/x509/CertPathReviewerMessages.properties'
        pickFirst 'org/spongycastle/x509/CertPathReviewerMessages_de.properties'
    }

    defaultConfig {
        applicationId "com.example.me.license"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.3.0'

    compile "com.jumio.android:jumio-mobile-sdk:1.9.0@aar"
    compile 'com.worldpay:cse-android-sdk:1.0.2'
}

如果开发人员直接包含他们的依赖项,就会发生这种情况。这里的坏人是jumio mobile sdk。这个包直接包含
com.madgag.spongycastle
类,而不是像应该做的那样在pom中指定它们

幸运的是,另一个包设置正确,因此您应该能够从中排除spongycastle:

compile ('com.worldpay:cse-android-sdk:1.0.2'){
    exclude group: 'com.madgag.spongycastle'
}


现在想象一下,两个包都会直接包含这些类。当时没有其他可能手动编辑这些文件。这就是为什么我讨厌有人做jumio的人正在做的事。如果您有联系人,请告诉他们为依赖关系系统准备软件包,这样就不会再出现此问题。

将您的gradle文件张贴在此处。谢谢!。您能解释一下(或给我指出一个好的来源)这个
exclude
指令是如何工作的吗?我已经看到它与
模块
等一起被提到。。也不知道该如何使用,何时使用。