我是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文件。
你能说出我的代码有什么问题吗?谢谢你的帮助。
答案 0 :(得分:1)
下面的脚本并不总是排除support-v4
compile ('some-module') {
exclude module: 'support-v4'
}
因为模块名称可能不同。 因此,您需要先找出模块名称(ARTIFACT_ID)才能排除正确的名称。
在我的情况下,添加 RecyclerView 作为我的项目依赖项会导致错误。
重复输入: 机器人/支撑/ V4 /视图/ ViewPager $ MyAccessibilityDelegate.class
和
重复输入: 机器人/支撑/ V4 /硬件/显示/ DisplayManagerCompat.class
我使用gradle任务 androidDependencies 找到了模块。
执行此任务将显示依赖关系树(下面的参考图像)。
然后删除了不需要的或重复的模块。
compile ('com.android.support:recyclerview-v7:+') {
exclude module: "support-core-ui"
exclude module: "support-compat"
}