我的Gradle是:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.belajarku.gamelari"
minSdkVersion 14
targetSdkVersion 25
multiDexEnabled true
}
dexOptions {
// Prevent OutOfMemory with MultiDex during the build phase
javaMaxHeapSize "4g"
}
buildTypes {
release {
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets.main {
jni.srcDirs = []// <-- disable automatic ndk-build call
}
}
dependencies {
compile ('com.google.android.gms:play-services:+'){exclude module: 'support-v4'}
compile files('libs/dagger-1.2.2.jar')
compile files('libs/javax.inject-1.jar')
compile files('libs/nineoldandroids-2.4.0.jar')
compile files('libs/support-v4-19.0.1.jar')
compile ('com.android.support:multidex:1.0.1'){exclude module: 'support-v4'}
}
但是当我构建apk 时,项目会说:
错误:任务执行失败 &#39;:应用程序:transformClassesWithJarMergingForDebug&#39;
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目: 机器人/支撑/ V4 /数据库/ DatabaseUtilsCompat.class
请帮我修理一下。
答案 0 :(得分:0)
您应该将支持依赖项更新为相同版本的compileSdkVersion。您的 compileSdkVersion 为25,因此您的支持库也应为25。
请勿使用整套Google Play服务,从Set Up Google Play Services选择您需要阅读的内容。例如,如果您要使用Google广告,请仅添加com.google.android.gms:play-services-ads:11.0.4
。你需要改变你的依赖关系:
dependencies {
...
// only use google ads from google service.
compile 'com.google.android.gms:play-services-ads:11.0.4'
compile 'com.android.support:support-v4:25.3.1'
...
}
然后,您可以设置multiDexEnabled false
或对其进行评论并从依赖项中删除compile ('com.android.support:multidex:1.0.1')
来停用您的多索引。
答案 1 :(得分:0)
com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目:android / support / v4 / database / DatabaseUtilsCompat.class
您正在使用不同版本添加两个相同的类。
compile ('com.google.android.gms:play-services:+'){exclude module: 'support-v4'}
compile files('libs/support-v4-19.0.1.jar')
使用com.google.android.gms:play-services:+
您将添加所有具有依赖性的播放服务库包与support-v4。