Ошибка: java.util.zip.ZipException: повторяющаяся запись

Я пытаюсь добавить библиотеку в свой проект, сейчас мой текущий build.gradle является:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    repositories {
        mavenCentral()
    }

    defaultConfig {
        applicationId "com.example.guycohen.cheaters"
        minSdkVersion 11
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
            // Enabling multidex support.
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'com.facebook.android:facebook-android-sdk:4.0.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.parse.bolts:bolts-android:1.+'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.whl.handytabbar:library:1.0.4'
    compile 'com.nineoldandroids:library:2.4.0'
    compile 'com.daimajia.easing:library:1.0.1@aar'
    compile 'com.daimajia.androidanimations:library:1.1.3@aar'
}

Когда я добавляю новую библиотеку

compile 'com.github.navasmdc:PhoneTutorial:1.+@aar'

Я получаю эту ошибку:

Error:Execution failed for task ':app:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry:      android/support/v4/print/PrintHelperKitkat$2$1.class

Я пытался решить эту проблему, добавив

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

Я не смог найти повторяющийся класс в моем проекте.

Я уверен, что если бы я мог удалить дублирующуюся запись, она бы отлично работала, но я не уверен, как мне ее найти.

4 ответа

Решение
compile 'com.android.support:support-v4:22.1.1'
compile ('com.android.support:appcompat-v7:22.1.1') {
    exclude module: 'support-v4'
}
compile ('com.facebook.android:facebook-android-sdk:4.2.0') {
    exclude module: 'support-v4'
}
compile ('com.github.navasmdc:PhoneTutorial:1.+@aar') {
    exclude module: 'support-v4'
}

Я использую это, чтобы заменить все версии библиотек поддержки последней версией, которую я использую в файле Gradle:

configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion "26.0.1"
            }
        }
    }
}

Попробуйте использовать эти версии в файле build.gradle.

compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'

Я столкнулся с той же проблемой. Я решил это,

Убедитесь, что во всех импортированных проектах build.gradle файл должен иметь такой же compileSdkVersion а также dependencies версии как в вашем проекте build.gradleфайл. Это устранит эту ошибку.

Ваша ошибка:

java.util.zip.ZipException: повторяющаяся запись: android/support/v4/print/PrintHelperKitkat$2$1.class

Шаг 1: В этом случае основной подсказкой является Android / Support / V4 / Print / PrintHelperKitkat $ 2 $ 1.class

Шаг 2: Поиск класса, в вашем случае "PrintHelperKitkat.class" (в AndroidStudio просто нажмите Ctrl+N в Windows или CMD-O на Mac)

Шаг 3. Посмотрите, в каком банке он находится - Android Studio запишет его во всплывающем окне.

Шаг 4: исключить его из всех сборок,

например:

com.android.support:support-v4:_____

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

В моем случае моя одна зависимость также включена в мою другую AAR. Поэтому я удалил эту зависимость

Другие вопросы по тегам