2015-08-23 27 views
6

Tôi có lỗi này:phòng thu Execution Android thất bại cho nhiệm vụ ': Ứng dụng: packageAllDebugClassesForMultiDex'

Execution failed for task ':app:packageAllDebugClassesForMultiDex'. 
> java.util.zip.ZipException: duplicate entry: com/google/android/gms/internal/zzrf.class 

tôi muốn thêm vào google play dịch vụ cho dự án của tôi vì vậy tôi đặt dòng này trong tập tin build.gradle:

compile 'com.google.android.gms:play-services:7.8.0' 

Vì vậy, tôi đã để cho phép multidex và tôi đi theo doc android, bổ sung này trong build.gradle:

compile 'com.android.support:multidex:1.0.1' 

multiDexEnabled true 

tôi thêm này trong manifest android:

<application 
... 
android:name="android.support.multidex.MultiDexApplication"> 

Nhưng tôi có lỗi, tôi đã viết ở trên. Tôi đã tìm thấy rất nhiều câu hỏi liên quan đến vấn đề này (ứng dụng: packageAllDebugClassesForMultiDex) nhưng không phải với điều đó (mục nhập trùng lặp: com/google/android/gms/internal/zzrf.class).

Tôi đã thử một số giải pháp như xóa một số thư viện của Google nhưng tôi không biết nội dung nào đề cập đến nội bộ/zzrf.class.

Đây là tập tin gradle tôi:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 22 
    buildToolsVersion "22.0.1" 

    defaultConfig { 
     applicationId "fr.djey.testgoogleplus" 
     minSdkVersion 16 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
     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:22.2.1' 
    compile 'com.google.android.gms:play-services:7.8.0' 
    compile 'com.android.support:multidex:1.0.1' 
} 
+0

Đi tới build.gradle của bạn và đặt multiDexEnabled = true nó đã xảy ra khiến bạn vượt quá 65.000 phương thức đặt java. Và nó thường xảy ra khi bạn thêm một số mô-đun vào ứng dụng của bạn –

+0

Cảm ơn câu trả lời của bạn nhưng nó đã được thực hiện, tôi đã nói trong câu hỏi – Jey10

+0

Bạn đã thêm thư viện nào khi tất cả bắt đầu? Hoặc dán tập tin build.gradle của bạn –

Trả lời

10

Tôi gặp phải sự cố tương tự. Trong trường hợp của tôi, tôi đã sử dụng thư viện Android được tạo tại nhà do ứng dụng Android của tôi sử dụng. Có nghĩa là 1 dự án với 2 mô-đun riêng biệt, trong khi mô-đun ứng dụng phụ thuộc vào mô-đun thư viện. Cả hai đều có hỗ trợ đa điểm. Nguyên nhân gốc rễ là sự không nhất quán giữa phiên bản dịch vụ google play. Trong mô-đun ứng dụng tôi đã sử dụng 7.8. + Và trong thư viện tôi đã sử dụng 8.1. Vì vậy, tôi chỉ cần cập nhật cả hai cùng một 8.1. + Và điều đó cố định cho tôi. Vì vậy, câu trả lời của tôi là kiểm tra tất cả các libs bạn phụ thuộc vào và có thể 1 trong số họ sử dụng phiên bản dịch vụ google play bên dưới của bạn.

+1

Cuối cùng, tôi đã tạo một dự án khác và chỉ làm điều tương tự: đặt dịch vụ google play và multidex, sự cố không xuất hiện nữa. Tôi nghĩ câu trả lời của bạn có thể làm việc cho một số trường hợp, trong trường hợp khác chỉ cần tạo một dự án khác. – Jey10

+1

Chỉ cần chạy phụ thuộc ./gradlew để tìm hiểu mô-đun nào bao gồm các phiên bản dịch vụ Play xung đột. –

1

Xóa tất cả các file dưới xây dựng thư mục của dự án đó. Trong trường hợp của tôi, đó là tệp jar của toàn bộ cuộc xung đột trên google play với tệp jar của dịch vụ quảng cáo duy nhất.

0

Như tôi đã nói trong nhận xét: Tôi đã tạo một dự án khác và chỉ làm những việc tương tự: đặt dịch vụ google play và multidex, sự cố không xuất hiện nữa.

Các vấn đề liên quan