2016-05-10 26 views
11

Tôi đang sử dụng thư viện bên ngoài payu money sdk và linkedin-sdk, cả hai đều sử dụng thư viện volley, trong khi biên dịch dự án cho phép nhập trùng lặp của AuthFailureError.classmục nhập trùng lặp: com/android/volley/AuthFailureError.class trong khi biên soạn dự án trong studio android

Lỗi: Thực thi không thành công cho công việc ': ứng dụng: packageAllDebugClassesForMultiDex'.

java.util.zip.ZipException: duplicate entry: com/android/volley/AuthFailureError.class"

tôi cũng đã thêm mã sau đây để loại trừ mô-đun, nhưng vẫn cùng một lỗi

configurations{ all*.exclude module: 'com.android.volley' }

xin vui lòng giúp

+0

do này, tôi đoán http://stackoverflow.com/a/28937822/2032561 – Bharatesh

+0

@Ankur bạn đã có những giải pháp cho vấn đề này? vui lòng trả lời càng sớm càng tốt. – Dev

+0

@Dev ... vâng sau rất nhiều rắc rối .. tôi đã làm điều đó với việc loại trừ thư viện hỗ trợ-v4 'biên dịch ('com.android.support:appcompat-v7:23.2.1') ​​{ loại trừ mô-đun: 'support- v4 ' } biên dịch (' com.google.android.gms: play-services: 8.3.0 ') { loại trừ mô-đun:' support-v4 ' } ', nếu nó không hoạt động, hãy cho tôi biết thư viện nào đang tạo ra vấn đề. –

Trả lời

0

Đây là một ví dụ làm thế nào để loại trừ các lớp học trong phụ thuộc khi có trùng lặp nhập vào gradle.

compile ('com.google.api-client:google-api-client-android:1.17.0-rc') { 
    exclude module: 'httpclient' 
} 

hoặc thử với cách của bạn chỉ cần thêm một đoạn nữa

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

Vì vậy, bây giờ những gì bạn phải làm là

Tìm kiếm CTRL + SHIFT + N trong studio android cho AuthFailureError lớp .class Xem bình chứa cái này và loại bỏ nó như trên (Đây chỉ là một ví dụ/Bạn phải tìm ra lớp trùng lặp và loại bỏ nó theo cách thủ công)

+0

vẫn còn lỗi tương tự cho 'cấu hình { tất cả * .exclude nhóm: 'com.android.volley', mô-đun: 'library-1.0.18' }' cũng khi tôi thêm mô-đun loại trừ vào build.gradle của mình, nó cung cấp lỗi 'Không tìm thấy phương pháp DSL Gradle:' exclude() '' –

2

Thêm multiDexEnabled true trong phần defaultConfig file gradle bạn

Sau đó,

biên dịch 'com.android.support:multidex:1.0.1' trong phụ thuộc của bạn

Cuối cùng thêm vào dưới đây trong lớp ứng dụng của bạn:

@Override 
    protected void attachBaseContext(Context base) { 
     super.attachBaseContext(base); 
     MultiDex.install(this); 
    } 

Ngoài ra, hãy kiểm tra xem bạn có đang sử dụng volley.jar trong thư mục libs của mình không. Nếu vậy, hãy xóa tệp jar đó và biên dịch lại. Đôi khi, phụ thuộc jar xung đột với những người được biên dịch bằng cách sử dụng nguồn từ xa.

+0

tôi đã thêm phương thức sau, nhưng lỗi tương tự –

+0

Kiểm tra câu trả lời cập nhật – asdec90

+0

nhưng nếu tôi xóa tệp jar đó khỏi thư mục libs, mã của tôi sẽ không chạy, nó cung cấp lỗi không thể tìm thấy cú volley –

0

Được rồi tôi nhận được câu trả lời của tôi

On mac thay vì kiểm soát n, nó là lệnh 0 và lệnh tôi cần là

cấu hình { tất cả các mô-đun * .exclude: 'bóng phát hành' }

2

chỉ cần xóa tệp jar trùng lặp (lưu ý: sử dụng phiên bản mới, xóa phiên bản cũ) để nhập "com.android.volley.AuthFailureError" trong build.gradle. Sau đó, dự án sạch sẽ và xây dựng lại dự án và sau đó chạy bạn sẽ nhận được kết quả.

+0

bạn không thể xóa tệp vì chúng nằm trong thư viện bên ngoài, bạn cần phải loại trừ –

1

Tôi gặp sự cố này khi cố gắng tạo APK (bản phát hành) và tôi đã giải quyết nó thay đổi việc xây dựng linkedin-sdk .gradle:

Từ:

dependencies { 
    compile 'com.android.support:support-annotations:20.0.0' 
    compile 'com.android.support:support-v4:21.0.+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile files('libs/volley.jar') 
    androidTestCompile('junit:junit:4.12') } 

Để:

dependencies { 
    compile 'com.android.support:support-annotations:20.0.0' 
    compile 'com.android.support:support-v4:21.0.+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.volley:volley:1.0.0' 
    androidTestCompile('junit:junit:4.12') } 
0

Chỉ cần loại bỏ thư viện bóng của bạn từ dependancy. Hãy thử làm sạch và xây dựng lại dự án nó hoạt động cho tôi. Ví dụ: payusdk cũng đang thực hiện thư viện volley vì vậy đó là lý do ngoại lệ cho thấy mục trùng lặp. Tôi hy vọng nó hoạt động. bởi vì tôi cũng tìm thấy lỗi này và tôi làm những việc này nó hoạt động. Cảm ơn.

5

Tôi tình cờ gặp lỗi này, và sau khi đọc this, tôi đã có thể giải quyết nó.

Hãy thử thêm dòng này bên trong ứng dụng của bạn dir build.gradle tập tin -

android{ 
configurations { 
    all*.exclude group: 'com.android.volley' 
}} 

Hope this helps.

0

Tôi gặp vấn đề tương tự khi tạo bản dựng trên Jenkins, thật lạ là nó hoạt động tốt trên máy cục bộ của tôi. Sau khi thêm vào bên dưới, loại trừ nó hoạt động trên cả máy cục bộ và Jenkins.

android{ 
configurations { 
    all*.exclude group: 'com.android.volley' 
}} 

Tôi đã thêm khối cấu hình vào phần build.gradle của ứng dụng trong phần Android.

Nếu phiên bản SDK biên dịch của phiên bản là 22 và phiên bản Công cụ xây dựng là 25.0.0

Điều này làm việc như một sự quyến rũ.

0

Sử dụng lệnh dưới đây trong Terminal Android studio để có được những dữ liệu xung đột phụ thuộc - [Replace with Tên ứng dụng của bạn]

./gradlew -q :<app>:dependencyInsight --dependency volley --configuration compile 

Nếu bạn đang sử dụng thư viện Volley mới nhất từ ​​android [https://github.com/google/volley/releases], thêm dưới hai dòng trong tệp build.gradle của bạn bên dưới mỗi mục nhập thư viện biên dịch có xung đột.

Ex:

compile('com.xyz:abc:1.1.0-RELEASE') { 
     exclude module: 'library' 
     exclude group: 'com.mcxiaoke.volley' 
} 
Các vấn đề liên quan