Ошибка сборки Apk — повторяющаяся запись: android/support/v4/database/DatabaseUtilsCompat.class?

Мой 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

Пожалуйста, помогите мне исправить это.


comment
Спрашивали так много раз, что трудно указать хороший дубликат. Пожалуйста, проанализируйте свои зависимости.   -  person Selvin    schedule 02.08.2017


Ответы (2)


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.

person Gabriele Mariotti    schedule 02.08.2017

Вы должны обновить свои зависимости поддержки до той же версии compileSdkVersion. Ваш compileSdkVersion равен 25, поэтому ваша библиотека поддержки также должна быть 25.

Не используйте весь пакет услуг Google Play, выберите то, что вам нужно, прочитайте в разделе Настройка Google Play Услуги. Например, если вы хотите использовать объявления 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') из своих зависимостей.

person ישו אוהב אותך    schedule 02.08.2017