2017-10-30 15 views
5

Tôi đã nhận lỗi sau khi thực hiện một thông cáo xây dựng trên Android Studio 3Lỗi: json định nghĩa các lớp học mà xung đột với các lớp học tại được cung cấp bởi Android

Lỗi: Lỗi: json định nghĩa các lớp học mà xung đột với các lớp học tại được cung cấp bởi Android . Các giải pháp bao gồm việc tìm kiếm các phiên bản mới hơn hoặc các thư viện thay thế không có cùng một vấn đề (ví dụ, để sử dụng httpclient HttpUrlConnection hoặc okhttp thay thế), hoặc đóng gói lại thư viện bằng cách sử dụng một cái gì đó như jarjar. [DuplicatePlatformClasses]

Sau đây là phụ thuộc của tôi:

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.0.1' 
    compile 'com.android.support:support-v4:26.0.1' 
    compile 'org.greenrobot:eventbus:3.0.0' 
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:+' 
    compile 'com.evernote:android-job:1.2.0' 
    compile 'com.amitshekhar.android:android-networking:1.0.0' 
    compile 'com.facebook.stetho:stetho:1.5.0' 
    compile "me.tatarka.redux:redux-core:0.10" 
    compile "me.tatarka.redux:redux-android:0.10" 
    compile "me.tatarka.redux:redux-android-lifecycle:0.10" 
    compile "me.tatarka.redux:redux-thunk:0.10" 
    annotationProcessor "org.immutables:value:2.5.5" // <-- for annotation processor 
    provided "org.immutables:value:2.5.5" // for annotations 
    provided "org.immutables:builder:2.5.5" // for annotations 

    compile "me.tatarka.redux:redux-monitor:0.10" 
    testCompile 'junit:junit:4.12' 
} 

Nó nói json nhưng tôi không thể tìm thấy trong đó những sự phụ thuộc trên gây ra vấn đề.

Dưới đây là những gì tôi nhận được khi tôi chạy

gradlew assembleRelease 

Task :app:lintVitalRelease /Users/kruyvanna/Projects/key/HappyKey_Android2/app/build.gradle: Error: json defines classes that conflict with classes now provided by Android. Solutions include finding newer versions or alternative libraries that don't have the same problem (for example, for httpclient use HttpUrlConnection or okhttp instead), or repackaging the library using something like jarjar. [DuplicatePlatformClasses]

Giải thích cho vấn đề của kiểu "DuplicatePlatformClasses": Có một số thư viện mà lặp lại không chỉ là chức năng của nền tảng Android nhưng sử dụng chính xác cùng một tên lớp như những cái tên được cung cấp trong Android - ví dụ như các lớp http apache. Điều này có thể dẫn đến đến các sự cố không mong muốn. Để giải quyết vấn đề này, bạn cần phải tìm phiên bản mới hơn của thư viện không còn vấn đề này hoặc đóng gói lại thư viện (và tất cả phụ thuộc ) bằng cách sử dụng công cụ jarjar hoặc cuối cùng, viết lại mã để sử dụng các API khác nhau (ví dụ, đối với mã http, xem xét sử dụng HttpUrlConnection hoặc một thư viện như okhttp.)

1 lỗi, 0 cảnh báo

THẤT BẠI: Build thất bại với một ngoại lệ.

  • Điều gì đã xảy ra: Thực hiện không thành công cho công việc ': app: lintVitalRelease'.

    Lint found fatal errors while assembling a release target.

    Để tiếp tục, hoặc sửa chữa các vấn đề xác định bởi lint, hoặc sửa đổi xây dựng kịch bản của bạn như sau: ... android { lintOptions { checkReleaseBuilds sai // Hoặc, nếu bạn thích, bạn có thể tiếp tục kiểm tra các lỗi trong phiên bản xây dựng, // nhưng vẫn tiếp tục xây dựng ngay cả khi lỗi được tìm thấy: abortOnError sai }} ...

  • hãy thử: Chạy với tùy chọn --stacktrace để nhận dấu vết ngăn xếp. Chạy với tùy chọn --info hoặc --debug để có thêm đầu ra nhật ký.

  • Nhận trợ giúp nhiều hơn tại https://help.gradle.org

+0

những gì xây dựng của bạn công cụ để bạn sử dụng? – Lino

+0

Tôi đang sử dụng Android Studio. Đã nhấp vào "Xây dựng -> Tạo APK đã ký" – vanna

+0

Bạn đã giải quyết được sự cố chưa? Tôi đang phải đối mặt với vấn đề tương tự. – Hong

Trả lời

0

Tới commandline và nhìn vào cây phụ thuộc.Điều này sẽ cung cấp cho bạn một danh sách tất cả những gì mà ứng dụng của bạn sử dụng:

./gradlew dependencies 
0

tôi đã thêm phụ thuộc từng người một và thấy cái này gây ra lỗi

compile "me.tatarka.redux:redux-monitor:0.10" 
0

tôi cố định nó bằng cách thêm:

configurations { 
    all { 
     exclude group: 'org.json', module: 'json' 
    } 
} 

vào tệp gradle mô-đun, không cần loại bỏ phụ thuộc.

0

Thêm này trong app/build.gradle

configurations { 
    all { 
     exclude module: 'commons-logging' 
    } 
} 
Các vấn đề liên quan