android – java.util.zip.ZipException with spongycastle LICENSE.class

前端之家收集整理的这篇文章主要介绍了android – java.util.zip.ZipException with spongycastle LICENSE.class前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我试图包括两个不同的第三方库,两者似乎都包括不同版本的Spongy城堡.两者都包含在我的build.gradle中的编译语句中,一个包含在AAR(@aar)中,而另一个包含在正常情况下.

当我尝试用这两个libs编译调试buildType时(sync不显示问题).我看到以下内容,

Error:Execution Failed for task
‘:app:transformClassesWithJarMergingForDebug’.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry:
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的人正在做的事情.如果您有联系人,请告诉他们为依赖系统准备他们的包,因此不会再出现此问题.

猜你在找的Android相关文章