java.util.zip.ZipException: packageAllDebugClassesForMultiDex sırasında yinelenen giriş


118

Bu hatanın ne anlama geldiğinden emin değilim.

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

Şu anda android-support-v4.jarkitaplıklarım için kullanıyorum

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'
}

Gradle senkronizasyonu sırasında hata görünmez. Tam uygulamayı çalıştırmayı denediğimde

Sorun ne olabilir?


1
Hata, başka herhangi bir jar bağımlılığınız aynı sınıfa sahip olduğunda ortaya çıkar, hem gradle hem de jar bağımlılığı olarak destek kavanozunu eklemediğinizden emin olun. lütfen soruya tam bağımlılık kapanışı ekleyin.
pyus13

@ pyus13 teşekkürler. Soruyu güncelledim. Bu benim tüm bağımlılık listem
bman

1
Projenizde 3 modül bağımlılığınız var, bu nedenle hepsinden yalnızca birinin bağımlılık olarak support-v4'e sahip olduğundan emin olun.
pyus13

lütfen
Tomer

Hata: ': Mulugu Astro: transformClassesWithJarMergingForDebug' görevi için yürütme başarısız oldu. > com.android.build.api.transform.TransformException: java.util.zip.ZipException: yinelenen giriş: android / support / v4 / view / ViewPager $ MyAccessibilityDelegate.class
Harsha

Yanıtlar:


64

V4 kitaplığı ve derleme kitaplığı eklediğinizi kontrol etmeniz mi gerekiyor? Uygulamanızda veya bağımlılık programınızda kitaplığı tekrar etmemelisiniz.

tek bir V4 kalacak şekilde tekrar kütüphanesini silin.

app dir build.gradledosyanıza şu komutu ekleyin:

android{


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

}

benim için çalışıyor! Deneyebilirsin!


19
Bu parçaları ekledikten sonra v4 desteği alamazsınız, Herhangi bir fikriniz var mı?
Nisarg

@Nisarg da bana oluyor.
CJ_COIMBRA

@Nisarg programı yeniden derlemek için gradle kullanabilirsiniz.
GeekHades

@Nisarg, lütfen tekrar nasıl yeniden derleyeceğim konusunda bana yardım eder misiniz, ben de sizinkiyle aynı sorunu yaşıyorum, parçalar ve görev yığını oluşturucu çözmeyi durdurdu
Gaurav Arora

82

Muhtemelen şimdiye kadar bunu düzelttiniz, ancak bunun yanıtsız kalmaması için, şunu eklemeyi deneyin build.gradle:

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

4
Yapılandırma satırını ekledim ama yine Error:Execution failed for task ':Analyst:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.classde gösteriyor.
biswajitGhosh

2
Sorunu nasıl düzelttiniz?
Arslan Anwar

9
doğru çözüm var mı? aynı sorunu alıyorum java.util.zip.ZipException: yinelenen giriş: com / google / gson / annotations / Expose.class
RamBabu Pudari

2
Hata: (5, 30) hata: android.support.v4.app paketi mevcut değil Cevabınızı ekledikten sonra bu hatayı alıyorum
Ankit Thakkar

1
Bunun nereye gitmesi gerekiyor, mezun olmak için yeniyim ve şu anki projemde 5 build.gradle dosyası var configurations, bunların hiçbiri içinde yok ve nereye koyduğum önemli değil, yapamıyorum gibi hatalar alıyorum "hariç tut" simgesini
çöz

25

Eski tutulma projesini yeniden ithal ettiğimde de bu tür bir sorunla karşılaştım. Projede jar dosyası olarak eski bir bağımlılık oluştu.

sadece kaldır

fileTree derleyin (dizin: 'libs', şunları içerir: '* .jar')

gradle dosyasında

ve gradle dosyasına bağımlılık ekleyin.

Benim için çalışıyor ..


Eski eclipse projesini içe aktarırken bu hata oluştu üzgünüm, aslında, bazı referans kitaplıklarını kaldırdım ve aynı bağımlılığı gradle dosyasına ekledim.
Paraneetharan Saravanaperumal

1
Benim için çalıştı (ayrıca eski tutulma yapılandırmasından içe aktarılıyor). Bundan sonra temizlik ve yeniden inşa gerekiyordu.
Paco Abato

17
Neden Sauron adında birine güvenmeliyim?
matthias_b_nz

Bu belirli hatayı durdurdu, ancak düzinelerce başka hataya neden oldu. Bazen bu bağımlılıklara ihtiyaç duyarsınız. Kulağa tuhaf gelse de, Sauron bu sefer haklıydı.
SMBiggs

1
Bağımlılıklarınızı tek tek açıkça ekleyerek, .jariki kez dahil ettiğiniz yinelenen bir kitaplığı ortaya çıkarırsınız . Asla kullanmayın compile fileTree(...), çok fazla bariz hataları gizler.
Joshua Pinter

13

Benim durumumda belirtilen "yinelenen giriş" hatası multiDexEnable=true, build.gradle'da ayarlandıktan sonra ortaya çıktı.

Hatayı tamamen çözmek için öncelikle Uygulamaları 64K'dan Fazla Yöntemle Yapılandırma'ya bakın (özellikle "Uygulamanızı Gradle ile Multidex için Yapılandırma").

Ayrıca, Android Studio'da ctrl + n kullanarak "yinelenen girdi" hatasına neden olan sınıf oluşumlarını arayın. Kopyayı içeren modülü ve bağımlılığı belirleyin ve onu derlemeden hariç tutun, örneğin:

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

Çalışana kadar birden fazla modül etiketi denemek zorunda kaldım. "Support-v4" ün hariç tutulması, "java.util.zip.ZipException: yinelenen giriş: android / support / v4 / *" ile ilgili sorunları çözer


9

Anladığım kadarıyla aynı API için yinelenen referanslar var (Muhtemelen farklı sürüm numaraları). Komut satırından derleme yaparken hata ayıklamak oldukça kolay olmalıdır.

./gradlew yourBuildVariantName --debugKomut satırından deneyin .

Sorun teşkil eden öğe ilk başarısızlık olacaktır. Bir örnek şöyle görünebilir:

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'

Yukarıdaki durumda, libs dizinime (theOffendingAAR) dahil ettiğim aar dosyası Google Play Hizmetleri kavanozunu (evet her şeyi biliyorum. Evet biliyorum.) İçerirken BaseApp derleme dosyam konum hizmetlerini kullanıyordu:

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

Soruna neden olan öğeyi derleme dosyalarınızdan güvenle kaldırabilir, temizleyebilir ve yeniden oluşturabilirsiniz (gerekirse tekrarlayın).


1
Peki ya rahatsız edici kütüphaneye ihtiyacım olursa?
Janusz

1
Bu rahatsız edici kütüphaneyi
bulmama

1
Bu yardımcı olmuyor ... sorunlu kitaplığı kaldırdıktan sonra modül derlenemiyor
Utsav Gupta

9

bağımlılık sürümlerinizi kontrol edin, uyumlu sürümlerin özellikle com.google paketlerine dikkat etmesi gerekir, aynı sürüme sahip olmanız gerekir:

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

Her ikisi de 8.3.0'dır, başka bir sürüm derlemeniz varsa bu istisnayı atacaktır.


Teşekkürler Adam, Mükemmel çalışıyor, 'com.google.android.gms: play-services-analytics: 8.4.0' compile 'com.google.android.gms: play-services-ads: 8.3 derleyen üç farklı google play hizmetim var .0 'compile' com.google.android.gms: play-services-plus: 8.4.0 '
Samadhan Medge

5

Basit Jar dosyanızı gardle.project bağımlılıklarından v7 olarak kaldırın ve projenizi çalıştırın


Bu benim için iş, "build.gradle (Modül: app)" dosyamdaki "derleme dosyalarını ('libs / android-support-v13.jar')" bağımlılıklardan "kaldırın. Referans için y proje formunu Android Studio'ya içe aktardıktan sonra bu hatayı alın.
rafaellorey

5

Expose.class Hatası ie için

java.util.zip.ZipException: yinelenen giriş: com / google / gson / annotations / Expose.class

aşağıdaki kodu kullanın

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

11
OP hakkında hiçbir şey söylemedi gson.
IgorGanapolsky

3

kütüphanenin destek v4'e bağlı olduğunu bulun ve onu hariç tutun.

kod girişi build.gradleşöyle:

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'
}

Benim durumumda, lib 'espresso'da support-v4 adında bir kavanoz var ve benim projemde' app 'aynı support-v4'e sahip, espressoyu içe aktarırken support-v4'ü hariç tut.

Not: compile projectile çalışamıyor gibi görünüyorexclude


1

Bunun nedeni, bir kitaplık eklemeniz ve bir modüle birden fazla bağımlılık vermiş olmanızdır.

Benim durumumda, hem modül hem de gradle bağımlılığı olarak bir kütüphane eklemiştim.

Kitaplık ekleme kaynağının kaldırılması (kademeli bağımlılığı kaldırdım) sorunumu çözdü.


alternatif olarak, kavanozu libs dizininden kaldırarak ve gradle bağımlılığını koruyarak bu sorun benim için düzeltildi.
droideckar

Yeh! Tek bir kaynağı kaldırmak sorunu çözecektir. Aşamalı bağımlılığı sürdürmek iyidir.
Rahul Rastogi

0

Hata için: ': app: transformClassesWithJarMergingForDebug' com.android.build.api.transform.TransformException java.util.zip.ZipException yinelenen giriş com / google / gson / annotations / Expose.class için yürütme başarısız oldu

İşte yaptığım şey:

1) gson-2.5.jar dosyasını silin. 2) yapılandırmalar {all * .exclude module: 'gson-2.5'}


Soru Gson ile ilgili değildi
OneCricketeer

0

Kavanozu manuel olarak libs olarak kopyaladığım ve gradle dosyasındaki bağımlılıktan bahsettiğim için bu sorunla karşılaştım. Aynı jar dosyasının kütüphaneler gibi başka bir klasöre mi yoksa proje klasörüne mi kopyalanacağını proje yapınızı da kontrol edersiniz.


0

Android SDK'yı yükselttikten sonra da aynı sorunu yaşadım. Uygulamayı içinde çalıştırabildim, buildToolsVersion '23.0.1'değiştiğimde aynı hatayı aldımbuildToolsVersion '24.0.3'

Java sürümümü 1.7'den 1.8'e güncelleyerek sorunu çözdüm. compileSdkVersion 24


0

Bu sorun bana bir güne mal oldu. Sonunda firebase-ui kitaplık sürümünü 2.0.0'dan 1.2.0'a düşürdüm ve Proje düzeyi build.gradle dosyasına aşağıdaki kodu ekledim:

allprojects {
    repositories {
        jcenter()

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

1
Firebase kullanıcı arayüzü sürümü, gerçekte derlediğiniz
Firebase

0

Ayrıca 'com.android.support:appcompat-v7:24.0.0-alpha1' derlememden dolayı da sorun yaşıyorum ama recyclerview liberary compile 'com.android.support:recyclerview-v7:24.0.2' ekledim .. sürümü uyumlu olarak değiştirdim (24.0.2 intead of 24.0.0).

cevabı aldım..birine yardımı olabilir.


0

Benim durumumda, build.gradle'da multiDexEnable = true ayarlandıktan sonra belirtilen "yinelenen girdi" hatası ortaya çıktı.

ve aldığım tam hata aşağıdaydı:

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

İlk olarak Android Studio'da ctrl + n kullanarak "yinelenen girdi" hatasına neden olan ve com / google / android / gms / internal / zzqx.class için arama yaptım ve sonra gms sınıfı için bir sürümle 2 girdi gösteriyordu 8.4.0 ve 1, sürüm 11.6.0 ile.

Düzeltmek için hem 11.6.0'ı kullandım hem de düzeltildi.

daha erken

    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"

Sonra

    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"

Yeniden Yapılandırma Düzeltildi.


0

Benim durumumda tam hata aşağıdaydı

': Android: transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: yinelenen giriş: com / google / android / gms / internal / zzqx.class

Google apis'in başka bir sürümünü, yani bir modül gradle dosyasında kullanıyordum

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

ancak diğer modüller sürüm 11.6.0'da aşağıdaki gibidir

   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"

Ancak bunu bulmak için android stüdyosunda ctrl + n yaptım ve zzqx.class sınıf adını girdim ve sonra bu sınıf için çekilen 2 jar dosyası görüntüledikten sonra bir yerde 8.6.0 sürümünü kullandığımı anladım. 8.6.0'ı 11.6.0'a değiştirip projeyi yeniden oluştururken sorun düzeltildi.

Bu yardımcı olur umarım .

Bununla ilgili daha fazla bilgiyi burada https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implementing-google-play-services-leaderboards-in-libgdx/


0

Yanlışlıkla eklediğimde de benzer bir şey oldu benim için

apply plugin: 'kotlin-android'

android kütüphane modülüme. Çizginin kaldırılması sorunu düzeltir.


0

Yukarıdaki tüm çözümleri denedim ama benim için çalışmadım. Kitaplıkları goto proje yapısına> uygulamaya göre güncellemeyi denedim. Ve benim için çalışıyor! Bu cevabın birine yardımcı olmasını umuyoruz.


-1

Bunu dene:

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

Bu soru destek v4 kitaplığı ile ilgili, PhotoView değil
OneCricketeer

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.