【问题标题】:Build Apk Error - Duplicate entry : android/support/v4/database/DatabaseUtilsCompat.class?构建 Apk 错误 - 重复条目:android/support/v4/database/DatabaseUtilsCompat.class?
【发布时间】:2018-01-09 00:29:21
【问题描述】:

我的 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 时,项目说我:

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

com.android.build.api.transform.TransformException:java.util.zip.ZipException:重复条目: android/support/v4/database/DatabaseUtilsCompat.class

请帮我解决它。

【问题讨论】:

  • 问了很多次,很难指出好的副本。请分析您的依赖关系。

标签: android android-studio build.gradle android-support-library android-support-design


【解决方案1】:

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有依赖关系的播放服务库包。

【讨论】:

    【解决方案2】:

    您应该将您的支持依赖项更新为相同版本的 compileSdkVersion。您的 compileSdkVersion 是 25,因此您的支持库也应该是 25。

    不要使用Google Play服务的整个包,从Set Up Google Play Services中选择您需要阅读的内容。例如,如果您想使用谷歌广告,只需添加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') 来禁用您的 multidex。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-18
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多