java.util.zip.ZipException:重复条目:org / apache / commons / codec / binary / Base64.class

时间:2016-04-04 11:07:09

标签: android-studio android-gradle multidex android-multidex

我收到此错误。

  

错误:任务':app:packageAllDebugClassesForMultiDex'的执行失败。   java.util.zip.ZipException:重复条目:org / apache / commons / codec / binary / Base64.class

这是我的依赖关系。我正在使用OkHttp进行网络操作。它在5.0及以上版本中完美运行。但是在这之下会出现这个错误。

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3.1'
    compile files('libs/asmack-android-18-0.8.9.jar')
    compile files('libs/bugsense-3.6.1.jar')
    compile files('libs/commons-codec-1.4.jar')
    compile files('libs/eventbus-2.1.0-beta-1.jar')
    compile files('libs/glide-3.6.1.jar')
    compile 'com.facebook.android:facebook-android-sdk:4.+'
    compile 'com.google.android.gms:play-services:8.4.0'
    compile 'com.rockerhieu.emojicon:library:1.0'
    compile 'com.navercorp.pulltorefresh:library:3.2.0@aar'
    compile files('libs/okhttp-1.2.1-jar-with-dependencies.jar')
    compile files('libs/okio-1.0.1.jar')
    compile files('libs/universal-image-loader-1.9.3-SNAPSHOT.jar')
    compile files('libs/volley.jar')
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile files('libs/org.apache.http.legacy.jar')
    }

整个网格如下。

apply plugin: 'com.android.application'

android {     compileSdkVersion 23     buildToolsVersion“22.0.1”

packagingOptions {
    exclude 'META-INF/license.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/NOTICE.txt'
}

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_7
    targetCompatibility JavaVersion.VERSION_1_7
}

defaultConfig {
    applicationId "com.onesnaps"
    minSdkVersion 15
    targetSdkVersion 23
    multiDexEnabled true
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}

}

gridle sync时没有错误。在运行时,它会为lolipop下的设备抛出此错误。

任何解决方案!感谢

1 个答案:

答案 0 :(得分:0)

  

重复项: org / apache / commons /codec/binary/Base64.class

...

  

5.0及更高版本中可以完美运行

听起来您可能会遇到此问题:

https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p

  

注意:android:required =“ false”属性对于SDK最低为23或更低的应用是必需的,因为在API级别低于24的设备上, org.apache.http.legacy库不可用。 (在这些设备上,Apache HTTP类在bootclasspath上可用。

因此,您不需要依赖项

     compile files('libs/org.apache.http.legacy.jar')

在为较低版本的Android编译时。


OR

  

app:packageAllDebugClassesForMultiDex

您可能超出了方法数量限制,需要启用multidex

https://developer.android.com/studio/build/multidex,如评论java.util.zip.ZipException: duplicate entry: org/apache/commons/codec/binary/Base64.class

中所述