java.util.zip.ZipException:重复条目:android / support / v4 / view / ViewPager $ MyAccessibilityDelegate.class

时间:2016-12-24 14:54:13

标签: android duplicates

我是Android编程的新手,请帮助我。

我编译应用程序时出现了这样的错误:

错误:任务':app:transformClassesWithJarMergingForDebug'执行失败。

  

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:android / support / v4 / view / ViewPager $ MyAccessibilityDelegate.class

这是我的gradle文件:

    apply plugin: 'com.android.application'


    android {
        compileSdkVersion 17
        buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.ecs.google.maps.v2.actionbarsherlock"
        minSdkVersion 9
        targetSdkVersion 17
        // Enabling multidex support.
        multiDexEnabled true
    }

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

    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
    }

}

configurations { all*.exclude group: 'com.android.support', module: 'support-v4' }

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile ('com.android.support:gridlayout-v7:+') {
        exclude module: 'support-v4'
    }

    compile 'com.astuetz:pagerslidingtabstrip:1.0.0'
    compile ('com.google.maps.android:android-maps-utils:0.3+') {
        exclude module: 'support-v4'
    }

    compile 'com.google.code.gson:gson:2.1'
    compile ('com.google.android.gms:play-services-maps:8.4.0') {
        exclude module: 'support-v4'
    }



    compile files('libs/google-http-client-1.15.0-rc.jar')
    compile files('libs/google-http-client-android-1.15.0-rc.jar')
    compile files('libs/google-http-client-jackson2-1.15.0-rc.jar')
    compile files('libs/httpclient-4.0.1.jar')
    compile files('libs/httpcore-4.0.1.jar')
    compile files('libs/jackson-core-2.1.3.jar')
    compile files('libs/jackson-core-asl-1.9.11.jar')


}

我已经删除了lib文件夹中所有重复的support-v4文件。

你能说出我的代码有什么问题吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

下面的脚本并不总是排除support-v4

compile ('some-module') {
    exclude module: 'support-v4'
}

因为模块名称可能不同。 因此,您需要先找出模块名称(ARTIFACT_ID)才能排除正确的名称。

在我的情况下,添加 RecyclerView 作为我的项目依赖项会导致错误。

  

重复输入:   机器人/支撑/ V4 /视图/ ViewPager $ MyAccessibilityDelegate.class

  

重复输入:   机器人/支撑/ V4 /硬件/显示/ DisplayManagerCompat.class

我使用gradle任务 androidDependencies 找到了模块。

enter image description here

执行此任务将显示依赖关系树(下面的参考图像)。

enter image description here

然后删除了不需要的或重复的模块。

compile ('com.android.support:recyclerview-v7:+') {
   exclude module: "support-core-ui"
   exclude module: "support-compat"
}