java.util.zip.ZipException: mục nhập trùng lặp trong packageAllDebugClassesForMultiDex


117

Tôi không chắc chắn lỗi này có nghĩa là gì.

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

Tôi hiện đang sử dụng android-support-v4.jarcho thư viện của mình

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

Lỗi không hiển thị trong quá trình đồng bộ hóa gradle. Chỉ khi tôi cố gắng chạy ứng dụng

Điều gì có thể là vấn đề?


1
Lỗi xảy ra khi bất kỳ phụ thuộc jar nào khác của bạn có cùng lớp, hãy đảm bảo rằng bạn chưa thêm jar hỗ trợ cả dưới dạng phụ thuộc gradle và jar. vui lòng bao gồm đóng hoàn toàn phụ thuộc trong câu hỏi.
pyus13

@ pyus13 cảm ơn. Tôi đã cập nhật câu hỏi. Đây là toàn bộ danh sách phụ thuộc của tôi
bman

1
Bạn có 3 phụ thuộc mô-đun trong dự án của mình, vì vậy hãy đảm bảo chỉ một trong số chúng có hỗ trợ-v4 làm phụ thuộc.
pyus13

vui lòng xem câu trả lời của tôi tại: stackoverflow.com/questions/28168063/…
Tomer

Lỗi: Không thực thi được tác vụ ': Mulugu Astro: biến đổiClassesWithJarMergingForDebug'. > Com.android.build.api.transform.TransformException: java.util.zip.ZipException: lối vào trùng lặp: android / support / v4 / xem / ViewPager $ MyAccessibilityDelegate.class
Harsha

Câu trả lời:


64

Bạn cần kiểm tra lại xem mình đã chèn thư viện v4 và thư viện biên dịch chưa? Bạn không được lặp lại thư viện trong ứng dụng hoặc chương trình phụ thuộc của mình.

xóa thư viện lặp lại để chỉ còn lại một V4.

trong build.gradletệp dir ứng dụng của bạn, hãy thêm lệnh này:

android{


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

}

nó hoạt động cho tôi! Bạn có thể thử nó!


19
Sau khi thêm các đoạn này không thể nhận được sự hỗ trợ của v4, Bất kỳ ý tưởng?
Nisarg

@Nisarg cũng xảy ra với tôi.
CJ_COIMBRA

@Nisarg bạn có thể sử dụng chương trình biên dịch lại gradle.
GeekHades

@NisargCan bạn hãy giúp tôi làm thế nào để biên dịch lại một lần nữa, tôi cũng có vấn đề tương tự như bạn, mảnh vỡ và taskstackbuilder đã ngừng giải quyết
Gaurav Arora

82

Bạn có thể đã sửa lỗi này ngay bây giờ nhưng để điều này không tiếp tục được trả lời, Hãy thử thêm điều này vào build.gradle:

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

4
Tôi đã thêm dòng cấu hình nhưng Error:Execution failed for task ':Analyst:packageAllDebugClassesForMultiDex'. > java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.classnó vẫn hiển thị.
biswajitGhosh

2
Bạn đã khắc phục sự cố như thế nào?
Arslan Anwar

9
có giải pháp nào phù hợp không. tôi đang gặp vấn đề tương tự java.util.zip.Zip Ngoại lệ: mục nhập trùng lặp: com / google / gson / annotations / Expose.class
RamBabu Pudari

2
Lỗi: (5, 30) lỗi: gói android.support.v4.app không tồn tại Bắt lỗi này sau khi thêm câu trả lời của bạn
Ankit Thakkar

1
Điều này sẽ đi đến đâu, tôi mới làm quen với gradle và có 5 tệp build.gradle trong dự án hiện tại của tôi, không có tệp nào configurationstrong số chúng và có vẻ như không quan trọng tôi đặt nó ở đâu, tôi gặp lỗi như không thể giải quyết biểu tượng 'loại trừ' hoặc không thể giải quyết biểu tượng 'tất cả'
JStephen

25

Tôi cũng gặp phải vấn đề loại này khi nhập lại dự án nhật thực cũ. Nó xảy ra một số phụ thuộc cũ như tệp jar trong dự án.

chỉ cần loại bỏ

biên dịch fileTree (dir: 'libs', bao gồm: '* .jar')

trong tệp gradle

và thêm sự phụ thuộc vào tệp gradle.

Nó phù hợp với tôi ..


Lỗi này xảy ra khi nhập dự án nhật thực cũ, xin lỗi, thực ra, tôi đã xóa một số thư viện tham chiếu và thêm phần phụ thuộc tương tự vào tệp gradle.
Paraneetharan Saravanaperumal

1
Làm việc cho tôi (cũng nhập từ cấu hình nhật thực cũ). Sau đó, làm sạch và xây dựng lại là bắt buộc.
Paco Abato

17
Tại sao tôi nên tin một người tên Sauron?
matthias_b_nz

Đã dừng lỗi cụ thể này, nhưng gây ra hàng chục lỗi khác. Đôi khi bạn cần những phụ thuộc đó. Nghe có vẻ kỳ lạ, nhưng Sauron đã đúng lần này.
SMBiggs

1
Bằng cách thêm từng phần phụ thuộc một cách rõ ràng, bạn có thể sẽ khám phá ra một .jarthư viện trùng lặp mà bạn đang bao gồm hai lần. Không bao giờ sử dụng compile fileTree(...), nó ẩn quá nhiều lỗi rõ ràng.
Joshua Pinter

13

Trong trường hợp của tôi, lỗi "mục nhập trùng lặp" được đề cập đã phát sinh sau khi thiết lập multiDexEnable=truetrong build.gradle.

Để giải quyết triệt để lỗi, trước hết hãy xem phần Định cấu hình ứng dụng với các phương thức trên 64K (đặc biệt là "Định cấu hình ứng dụng của bạn cho Multidex với Gradle").

Hơn nữa, tìm kiếm các lần xuất hiện của lớp gây ra lỗi "mục nhập trùng lặp" bằng cách sử dụng ctrl + n trong Android Studio. Xác định mô-đun và phần phụ thuộc có chứa bản sao và loại trừ nó khỏi bản dựng, ví dụ:

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

Tôi đã phải thử nhiều nhãn mô-đun cho đến khi nó hoạt động. Việc loại trừ "support-v4" sẽ giải quyết các vấn đề liên quan đến "java.util.zip.ZipException: mục nhập trùng lặp: android / support / v4 / *"


9

Tôi hiểu là có các tham chiếu trùng lặp đến cùng một API (Có thể là số phiên bản khác nhau). Nó sẽ dễ gỡ lỗi một cách hợp lý khi xây dựng từ dòng lệnh.

Thử ./gradlew yourBuildVariantName --debugtừ dòng lệnh.

Mục vi phạm sẽ là thất bại đầu tiên. Một ví dụ có thể giống như sau:

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'

Trong trường hợp trên, tệp aar mà tôi đã đưa vào thư mục libs của mình (theOffendingAAR) đã bao gồm tệp Dịch vụ của Google Play (vâng toàn bộ. Vâng, tôi biết.) Trong khi tệp xây dựng BaseApp của tôi sử dụng các dịch vụ vị trí:

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

Bạn có thể xóa an toàn mục vi phạm khỏi (các) tệp bản dựng của mình, làm sạch và xây dựng lại (lặp lại nếu cần).


1
Vậy nếu tôi cần thư viện vi phạm thì sao?
Janusz

1
Điều này đã giúp tôi theo dõi các thư viện vi phạm :)
speedynomads

1
Đây help..on doesnt loại bỏ các thư viện xúc phạm các module không biên dịch
Utsav Gupta

9

kiểm tra các phiên bản phụ thuộc của bạn, bạn phải có các phiên bản tương thích đặc biệt chú ý đến các gói com.google, phải có cùng một phiên bản như:

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

Cả hai đều là 8.3.0, nếu bạn có biên dịch phiên bản khác sẽ ném ngoại lệ đó.


Cảm ơn bạn, Làm việc hoàn hảo, tôi có ba dịch vụ google play khác nhau compile 'com.google.android.gms: play-services-analytics: 8.4.0' compile 'com.google.android.gms: play-services-ads: 8.3 .0 'biên dịch' com.google.android.gms: play-services-plus: 8.4.0 '
Samadhan Medge

5

Đơn giản, Xóa tệp Jar của bạn khỏi tệp phụ thuộc gardle.project dưới dạng v7 và chạy dự án của bạn


Đó là công việc đối với tôi, chỉ cần xóa "tệp biên dịch ('libs / android-support-v13.jar')" dạng "phụ thuộc" trong "build.gradle (Mô-đun: ứng dụng)" của tôi. Để tham khảo, bạn gặp lỗi này sau khi nhập eclipse biểu mẫu dự án vào Android Studio.
rafaellorey

5

Đối với lỗi Expose.class tức là

java.util.zip.ZipException: mục nhập trùng lặp: com / google / gson / annotations / Expose.class

sử dụng mã dưới đây

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

11
OP không nói gì về gson.
IgorGanapolsky

3

tìm ra lib phụ thuộc vào hỗ trợ v4 và loại trừ nó.

mã trong build.gradlelà như thế này:

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

Trong tình huống của tôi, lib 'espresso' có một bình gọi là support-v4 và trong 'ứng dụng' dự án của tôi có cùng một hỗ trợ-v4, hãy loại trừ hỗ trợ-v4 khi nhập espresso.

Tái bút: có vẻ như compile projectkhông thể hoạt động vớiexclude


1

Điều này là do bạn đã thêm một thư viện và phụ thuộc vào một mô-đun nhiều lần.

Trong trường hợp của tôi, tôi đã thêm một thư viện dưới dạng mô-đun và dưới dạng phụ thuộc gradle cả hai.

Loại bỏ một nguồn thêm thư viện (tôi đã loại bỏ phụ thuộc gradle) đã giải quyết được vấn đề của tôi.


cách khác, vấn đề này đã được khắc phục đối với tôi bằng cách loại bỏ bình khỏi dir libs và giữ sự phụ thuộc của gradle.
droideckar

Đúng! Xóa bất kỳ nguồn nào sẽ giải quyết vấn đề. Giữ sự phụ thuộc vào gradle là tốt.
Rahul Rastogi

0

Đối với lỗi: Không thực thi được tác vụ ': app :formationClassesWithJarMergingForDebug' com.android.build.api.transform.TransformException java.util.zip.ZipException mục nhập trùng lặp com / google / gson / annotations / Expose.class

Đây là những gì tôi đã làm:

1) Xóa tệp gson-2.5.jar. 2) cấu hình {all * .exclude module: 'gson-2.5'}


Câu hỏi không phải về Gson
OneCricketeer

0

Tôi đã phải đối mặt với vấn đề này khi tôi đã sao chép thủ công jar trong libs cũng như đề cập đến sự phụ thuộc trong tệp gradle. Bạn cũng kiểm tra cấu trúc dự án của mình, xem cùng một tệp jar có được sao chép trong bất kỳ thư mục nào khác như libs hoặc trong thư mục dự án hay không.


0

Tôi đã gặp sự cố tương tự sau khi nâng cấp Android SDK. Tôi đã có thể chạy ứng dụng trong buildToolsVersion '23.0.1', tôi gặp lỗi tương tự khi chuyển sangbuildToolsVersion '24.0.3'

Tôi đã giải quyết sự cố bằng cách cập nhật phiên bản java của mình từ 1.7 lên 1.8 với compileSdkVersion 24


0

Vấn đề này khiến tôi mất cả ngày. Cuối cùng, tôi đã hạ cấp phiên bản thư viện firebase-ui từ 2.0.0 xuống 1.2.0 và thêm mã sau vào tệp build.gradle cấp Dự án:

allprojects {
    repositories {
        jcenter()

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

1
Căn cứ hỏa lực UI phiên bản phụ thuộc vào những gì phiên bản của căn cứ hỏa lực bạn thực sự biên soạn
OneCricketeer

0

Tôi cũng gặp sự cố vì tôi đã biên dịch 'com.android.support:appcompat-v7:24.0.0-alpha1' nhưng tôi đã thêm biên dịch tái chế tự do 'com.android.support:recyclerview-v7:24.0.2' .. tôi đã thay đổi phiên bản giống như compat như (24.0.2 int thay cho 24.0.0).

tôi đã có câu trả lời..có thể nó sẽ giúp ích cho ai đó.


0

Trong trường hợp của tôi, lỗi "mục nhập trùng lặp" được đề cập đã phát sinh sau khi settingmultiDexEnable = true trong build.gradle.

và lỗi chính xác mà tôi đang gặp phải bên dưới:

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

Vì vậy, điều đầu tiên tôi tìm kiếm lớp gây ra lỗi "mục nhập trùng lặp" bằng cách sử dụng ctrl + n trong Android Studio và tìm kiếm com / google / android / gms / internal / zzqx.class và sau đó nó hiển thị 2 mục nhập cho lớp gms với một phiên bản 8.4.0 và 1 với phiên bản 11.6.0.

Để khắc phục, tôi đã thực hiện cả hai để sử dụng 11.6.0 và nó đã được sửa ví dụ

sớm hơn

    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"

Sau

    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"

Xây dựng lại Cố định.


0

Trong trường hợp của tôi, lỗi chính xác là bên dưới

': android: transformClassesWithJarMergingForDebug'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException: mục trùng lặp: com / google / android / gms / internal / zzqx.class

Tôi đang sử dụng một phiên bản google apis khác, tức là trong một tệp gradle mô-đun

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

tuy nhiên trong các mô-đun khác phiên bản 11.6.0 như bên dưới

   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"

Tuy nhiên, để tìm thấy điều này, tôi đã thực hiện ctrl + n trong android studio và nhập tên lớp zzqx.class và sau đó nó hiển thị 2 tệp jar đang được kéo cho lớp này và sau đó tôi hiểu rằng ở đâu đó tôi đang sử dụng phiên bản 8.6.0. Khi thay đổi 8.6.0 thành 11.6.0 và xây dựng lại dự án, vấn đề đã được khắc phục.

Hi vọng điêu nay co ich .

Thông tin thêm về điều này tại đây https://www.versionpb.com/tutorials/step-step-tutorials-libgdx-basic-setup-libgdx/implecting-google-play-services-leaderboards-in-libgdx/


0

Đối với tôi, một điều tương tự đã xảy ra khi tôi vô tình thêm vào

apply plugin: 'kotlin-android'

vào mô-đun thư viện Android của tôi. Xóa dòng sẽ khắc phục được sự cố.


0

Tôi đã thử tất cả các giải pháp trên nhưng không hiệu quả với tôi. Tôi đã thử cập nhật thư viện theo cấu trúc dự án goto> ứng dụng. Và nó hiệu quả với tôi! Hy vọng câu trả lời này hữu ích cho ai đó.


-1

Thử cái này:

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

Câu hỏi này là về các thư viện hỗ trợ v4, không PhotoView
OneCricketeer

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.