java.util.zip.ZipException: entri duplikat selama packageAllDebugClassesForMultiDex


118

Saya tidak yakin apa arti kesalahan ini.

Execution failed for task ':excelSior:packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/util/TimeUtils.class

Saya sedang menggunakan android-support-v4.jaruntuk perpustakaan saya

dependencies {
    compile project(':addThisSDK')
    compile project(':centeredContentButton')
    compile project(':googleplayservices_lib')
    compile files('libs/adxtag2.4.6.jar')
    compile files('libs/android-support-v4.jar')
    compile files('libs/aws-android-sdk-1.7.1.1-debug.jar')
    compile files('libs/commons-lang-2.6.jar')
    compile files('libs/crittercism_v4_4_0_sdkonly.jar')
    compile files('libs/dd-plist.jar')
    compile files('libs/FiksuAndroidSDK_4.1.1.jar')
    compile files('libs/iqengines-sdk-barcode.jar')
    compile files('libs/irEventTracker-1.2.jar')
    compile files('libs/jolt-core-0.0.7.jar')
    compile files('libs/json-utils-0.0.7.jar')
    compile files('libs/jsoup-1.7.2.jar')
    compile files('libs/kooaba-api-v4-java.jar')
    compile 'com.android.support:multidex:1.0.0'
}

Kesalahan tidak muncul selama sinkronisasi gradle. Tepat ketika saya mencoba menjalankan aplikasi

Apa masalahnya?


1
Error ini muncul saat dependensi jar lainnya milik Anda memiliki kelas yang sama, pastikan Anda belum menambahkan support jar sebagai dependensi gradle dan jar. harap sertakan penutupan ketergantungan lengkap dalam pertanyaan.
pyus13

@ pyus13 terima kasih. Saya telah memperbarui pertanyaan. Ini adalah seluruh daftar ketergantungan saya
bman

1
Anda memiliki 3 dependensi modul dalam project Anda, jadi pastikan hanya satu dari semuanya yang memiliki support-v4 sebagai dependensi.
pyus13

silakan lihat jawaban saya di: stackoverflow.com/questions/28168063/…
Tomer

Kesalahan: Eksekusi gagal untuk tugas ': Mulugu Astro: transformClassesWithJarMergingForDebug'. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: entri duplikat: android / support / v4 / view / ViewPager $ MyAccessibilityDelegate.class
Harsha

Jawaban:


64

Anda perlu memeriksa bahwa Anda telah memasukkan pustaka v4 dan pustaka kompilasi? Anda tidak boleh mengulang pustaka di aplikasi atau program ketergantungan Anda.

hapus library pengulangan sehingga hanya tersisa satu V4.

di build.gradlefile dir aplikasi Anda tambahkan perintah ini:

android{


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

}

itu berhasil untuk saya! Kamu bisa mencobanya!


19
Setelah menambahkan fragmen ini tidak bisa mendapatkan dukungan dari v4, Ada ide?
Nisarg

@Nisarg juga terjadi pada saya.
CJ_COIMBRA

@Nisarg Anda dapat menggunakan program compile gradle.
GeekHades

@NisargBisakah Anda membantu saya cara mengompilasi ulang lagi, saya juga memiliki masalah yang sama seperti milik Anda, fragmen dan pembuat taskstack telah berhenti menyelesaikannya
Gaurav Arora

82

Anda mungkin telah memperbaikinya sekarang tetapi agar ini tidak tetap tidak terjawab, Coba tambahkan ini ke build.gradle:

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

4
Saya telah menambahkan baris konfigurasi tetapi tetap saja Error:Execution failed for task ':Analyst:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.classitu terlihat.
biswajitGhosh

2
Bagaimana Anda memperbaiki masalah tersebut?
Arslan Anwar

9
apakah ada solusi yang tepat. Saya mendapatkan masalah yang sama java.util.zip.ZipException: entri duplikat: com / google / gson / annotations / Expose.class
RamBabu Pudari

2
Kesalahan: (5, 30) kesalahan: paket android.support.v4.app tidak ada Mendapatkan kesalahan ini setelah menambahkan jawaban Anda
Ankit Thakkar

1
Ke mana ini harus pergi, saya baru mengenal gradle dan ada 5 file build.gradle dalam proyek saya saat ini, tidak ada yang ada configurationsdi dalamnya dan sepertinya tidak masalah di mana saya meletakkannya, saya mendapatkan kesalahan seperti tidak bisa menyelesaikan simbol 'mengecualikan' atau tidak dapat menyelesaikan simbol 'semua'
JStephen

25

Saya juga menemukan masalah seperti ini ketika mengimpor ulang proyek gerhana lama. Terjadi beberapa ketergantungan lama sebagai file jar dalam proyek tersebut.

hapus saja

kompilasi fileTree (dir: 'libs', sertakan: '* .jar')

dalam file gradle

dan menambahkan ketergantungan pada file gradle.

Ini bekerja untuk saya ..


Kesalahan ini terjadi ketika mengimpor proyek gerhana lama maaf ,, sebenarnya, saya menghapus beberapa perpustakaan referensi dan menambahkan ketergantungan yang sama di file gradle.
Paraneetharan Saravanaperumal

1
Bekerja untuk saya (juga mengimpor dari konfigurasi gerhana lama). Setelah itu pembersihan dan pembangunan kembali diperlukan.
Paco Abato

17
Mengapa saya harus mempercayai seseorang bernama Sauron?
matthias_b_nz

Menghentikan kesalahan khusus ini, tetapi menyebabkan lusinan kesalahan lainnya. Terkadang Anda membutuhkan dependensi tersebut. Seaneh kedengarannya, kali ini Sauron benar.
SMBiggs

1
Dengan menambahkan dependensi Anda secara eksplisit, satu per satu, Anda kemungkinan akan menemukan .jarpustaka duplikat yang Anda sertakan dua kali. Jangan pernah digunakan compile fileTree(...), karena menyembunyikan terlalu banyak kesalahan yang jelas.
Joshua Pinter

13

Dalam kasus saya, kesalahan "entri duplikat" yang disebutkan muncul setelah menyetel multiDexEnable=truedi build.gradle.

Untuk mengatasi kesalahan sepenuhnya, pertama-tama lihat Konfigurasi Aplikasi dengan Lebih dari 64K Metode (khususnya "Mengonfigurasi Aplikasi Anda untuk Multidex dengan Gradle").

Selanjutnya cari kemunculan kelas yang menyebabkan kesalahan "entri duplikat" menggunakan ctrl + n di Android Studio. Tentukan modul dan ketergantungan yang berisi duplikat dan kecualikan dari build, misalnya:

compile ('org.roboguice:roboguice:2.0') {
    exclude module: 'support-v4'
}

Saya harus mencoba beberapa label modul sampai berhasil. Mengecualikan "support-v4" memecahkan masalah yang terkait dengan "java.util.zip.ZipException: entri duplikat: android / support / v4 / *"


9

Pemahaman saya adalah bahwa ada referensi duplikat ke API yang sama (kemungkinan nomor versi berbeda). Debug seharusnya cukup mudah saat membuat dari baris perintah.

Coba ./gradlew yourBuildVariantName --debugdari baris perintah.

Item yang menyinggung akan menjadi kegagalan pertama. Contohnya mungkin terlihat seperti:

14:32:29.171 [INFO] [org.gradle.api.Task] INPUT: /Users/mydir/Documents/androidApp/BaseApp/build/intermediates/exploded-aar/theOffendingAAR/libs/google-play-services.jar

14:32:29.171 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':BaseApp:packageAllyourBuildVariantNameClassesForMultiDex'

14:32:29.172 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :BaseApp:packageAllyourBuildVariantNameClassesForMultiDex FAILED'

Dalam kasus di atas, file aar yang saya masukkan dalam direktori libs saya (theOffendingAAR) menyertakan file Google Play Services jar (ya semuanya. Ya saya tahu.) Sementara file build BaseApp saya menggunakan layanan lokasi:

compile 'com.google.android.gms:play-services-location:6.5.87'

Anda dapat dengan aman menghapus item yang melanggar dari file build Anda, membersihkan dan membangun kembali (ulangi jika perlu).


1
Jadi bagaimana jika saya membutuhkan perpustakaan yang menyinggung?
Janusz

1
Ini membantu saya melacak perpustakaan yang menyinggung :)
speedynomads

1
Ini tidak membantu .. saat menghapus pustaka yang melanggar, modul gagal untuk dikompilasi
Utsav Gupta

9

periksa versi dependensi Anda, Anda harus memiliki versi yang kompatibel, perhatikan khusus untuk paket com.google, harus memiliki versi yang sama seperti:

compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.android.gms:play-services-maps:8.3.0'

Keduanya 8.3.0, jika Anda memiliki kompilasi versi lain akan membuang pengecualian itu.


Terima kasih Man, Bekerja dengan sempurna, saya memiliki tiga kompilasi layanan google play yang berbeda 'com.google.android.gms: play-services-analytics: 8.4.0' compile 'com.google.android.gms: play-services-ads: 8.3 .0 'kompilasi' com.google.android.gms: play-services-plus: 8.4.0 '
Samadhan Medge

5

Sederhana Hapus file Jar Anda dari dependensi gardle.project sebagai v7 dan jalankan proyek Anda


Itu berfungsi untuk saya, cukup hapus "file kompilasi ('libs / android-support-v13.jar')" form "dependencies" di "build.gradle (Module: app)" saya. Sebagai referensi, Anda mendapatkan kesalahan ini setelah mengimpor gerhana formulir proyek ke Android Studio.
rafaellorey

5

Untuk Exposure.class Error yaitu

java.util.zip.ZipException: entri duplikat: com / google / gson / annotations / Expose.class

gunakan kode di bawah ini

configurations {
    all*.exclude  module: 'gson'
}

11
OP tidak mengatakan apa-apa gson.
IgorGanapolsky

3

cari tahu lib tergantung pada dukungan v4, dan kecualikan itu.

kode build.gradleseperti ini:

androidTestCompile('com.android.support.test.espresso:espresso-contrib:2.2.1') {
    // http://stackoverflow.com/a/30931887/5210
    exclude group: 'com.android.support', module: 'appcompat'
    exclude group: 'com.android.support', module: 'support-v4'
    exclude module: 'recyclerview-v7'
}

Dalam situasi saya, lib 'espresso' memiliki jar yang disebut support-v4 dan dalam proyek saya 'app' memiliki support-v4 yang sama, kecualikan support-v4 saat mengimpor espresso.

PS: sepertinya compile projecttidak bisa bekerja denganexclude


1

Ini karena Anda telah menambahkan pustaka dan memberikan ketergantungannya pada modul lebih dari sekali.

Dalam kasus saya, saya telah menambahkan perpustakaan sebagai modul dan sebagai ketergantungan gradle keduanya.

Menghapus satu sumber menambahkan perpustakaan (saya menghapus ketergantungan gradle) memecahkan masalah saya.


alternatifnya, masalah ini telah diperbaiki untuk saya dengan menghapus jar dari direktori libs dan mempertahankan ketergantungan gradle.
droideckar

Yeh! Menghapus sumber tunggal apa pun akan menyelesaikan masalah. Menjaga ketergantungan gradle itu bagus.
Rahul Rastogi

0

Untuk Kesalahan: Eksekusi gagal untuk tugas ': app: transformClassesWithJarMergingForDebug' com.android.build.api.transform.TransformException java.util.zip.ZipException entri duplikat com / google / gson / annotations / Expose.class

Inilah yang saya lakukan:

1) Hapus file gson-2.5.jar. 2) konfigurasi {all * .exclude module: 'gson-2.5'}


Pertanyaan bukan tentang
Gson

0

Saya telah menghadapi masalah ini karena saya telah menyalin jar secara manual di libs serta menyebutkan ketergantungan dalam file gradle. Anda juga memeriksa dalam struktur proyek Anda, apakah file jar yang sama disalin di folder lain seperti libs atau di folder proyek.


0

Saya mengalami masalah yang sama setelah mengupgrade SDK android. Saya dapat menjalankan aplikasi di buildToolsVersion '23.0.1', saya mendapat kesalahan yang sama ketika saya mengubah kebuildToolsVersion '24.0.3'

Saya menyelesaikan masalah dengan memperbarui versi java saya dari 1.7 menjadi 1.8 dengan compileSdkVersion 24


0

Masalah ini menghabiskan biaya satu hari penuh. Saya akhirnya menurunkan versi pustaka firebase-ui dari 2.0.0 menjadi 1.2.0 dan menambahkan kode berikut di dalam file build.gradle level Project:

allprojects {
    repositories {
        jcenter()

        // Add the following code to your project level build.gradle
        maven {
            url 'https://maven.fabric.io/public'
        }
    }
}

1
Versi Firebase UI bergantung pada versi Firebase yang sebenarnya Anda kompilasi
OneCricketeer

0

Saya juga memiliki masalah karena saya memiliki kompilasi 'com.android.support:appcompat-v7:24.0.0-alpha1' tetapi saya menambahkan kompilasi bebas recyclerview 'com.android.support:recyclerview-v7:24.0.2' .. saya mengubah versinya sama seperti compat like (24.0.2 daripada 24.0.0).

Saya mendapat jawabannya..mungkin itu akan membantu seseorang.


0

Dalam kasus saya, kesalahan "entri duplikat" yang disebutkan muncul setelah settingmultiDexEnable = true di build.gradle.

dan kesalahan tepat yang saya dapatkan adalah di bawah ini:

Error:Execution failed for task 
':android:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: 
java.util.zip.ZipException: duplicate entry: 
com/google/android/gms/internal/zzqx.class

Jadi hal pertama saya mencari kelas yang menyebabkan kesalahan "entri duplikat" menggunakan ctrl + n di Android Studio dan mencari com / google / android / gms / internal / zzqx.class dan kemudian muncul 2 entri untuk kelas gms dengan satu versi 8.4.0 dan 1 dengan versi 11.6.0.

Untuk memperbaikinya saya membuat keduanya menggunakan 11.6.0 dan itu adalah contoh tetap

sebelumnya

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:8.4.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

Setelah

    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"
    compile "com.google.android.gms:play-services-ads:11.6.0"

Membangun Kembali Tetap.


0

Dalam kasus saya, kesalahan persisnya ada di bawah

': android: transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: entri duplikat: com / google / android / gms / internal / zzqx.class

Saya menggunakan versi lain dari google apis yaitu dalam satu modul file gradle

if (!project.hasProperty('gms_library_version')) {
        ext.gms_library_version = '8.6.0'
   }

namun di modul lain versi 11.6.0 seperti di bawah ini

   compile "com.google.android.gms:play-services-ads:11.6.0"
    compile "com.google.android.gms:play-services-games:11.6.0"
    compile "com.google.android.gms:play-services-auth:11.6.0"

Namun untuk menemukan ini saya melakukan ctrl + n di studio android dan memasukkan nama kelas zzqx.class dan kemudian menampilkan 2 file jar ditarik untuk kelas ini dan kemudian saya mengerti bahwa di suatu tempat saya menggunakan versi 8.6.0. Saat mengubah 8.6.0 menjadi 11.6.0 dan membangun kembali proyek, masalah telah diperbaiki.

Semoga ini membantu .

Lebih lanjut tentang ini di sini https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/


0

Bagi saya, hal serupa terjadi ketika saya menambahkan secara tidak sengaja

apply plugin: 'kotlin-android'

ke modul perpustakaan android saya. Menghapus garis memperbaiki masalah.


0

Saya mencoba semua solusi di atas tetapi tidak berhasil untuk saya. Saya mencoba memperbarui perpustakaan dengan goto project structure> app. Dan itu berhasil untuk saya! Semoga jawaban ini bermanfaat bagi seseorang.


-1

Coba ini:

android {
configurations {
        all*.exclude  module: 'PhotoView'  //去除重复依赖库
    }
}

Pertanyaan ini tentang pustaka dukungan v4, bukan
PhotoView

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.