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
những gì xây dựng của bạn công cụ để bạn sử dụng? – Lino
Tôi đang sử dụng Android Studio. Đã nhấp vào "Xây dựng -> Tạo APK đã ký" – vanna
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