2017-07-20 16 views
5

Trong ứng dụng của chúng tôi, chúng tôi sử dụng trang bị thêm cho mạng với dependancies sau:dependancies build.gradle cho retrofit và phiên bản mới nhất của okhttp

compile 'com.squareup.retrofit2:retrofit:2.3.0' 
compile 'com.squareup.retrofit2:converter-gson:2.3.0' 

Gần đây chúng tôi bắt đầu nhận được crash này đã được giải quyết. Làm thế nào sau đó tôi sửa lỗi này trong ứng dụng của chúng tôi? Sự hiểu biết của tôi là việc trang bị thêm được xây dựng trên thư viện okHttp. Vì vậy, hiện này có nghĩa là chúng ta sẽ phải chờ đợi một phiên bản mới của trang bị thêm bao gồm các phiên bản okHttp mới HOẶC Tôi có thể tự bao gồm các phiên bản mới của okHttp như một dependancy riêng biệt và kết thúc với:

compile 'com.squareup.retrofit2:retrofit:2.3.0' 
compile 'com.squareup.retrofit2:converter-gson:2.3.0' 
compile 'com.squareup.okhttp3:okhttp:3.8.1' 

Proguard cấu hình được (chỉ là phần trang bị thêm dù)

-dontnote retrofit2.Platform 
-dontwarn retrofit2.Platform$Java8 
-dontwarn okhttp3.** 
-dontwarn retrofit2.** 
-dontwarn com.squareup.picasso.** 
-keep class retrofit2.** { *; } 
-keepattributes Signature 
-keepattributes Exceptions 
-keepclasseswithmembers class * { @retrofit2.http.* <methods>; } 
-keepclasseswithmembers interface * { @retrofit2.* <methods>; } 
-dontwarn okio.** 
+0

Các phụ thuộc mà bạn đã bao gồm chứa thư viện 'okhttp' . Có lẽ, tệp proguard của bạn không chính xác. Bạn có thể dán nó ở đây không? – Yashasvi

+0

nó về lib okhttp và nó cố định tại phiên bản 3.8.1 chỉ cần thêm nó vào gradle –

+0

@OussemaAroua của bạn nếu tôi hiểu biết một cách chính xác khi tôi bao gồm retrofit nó đã đi kèm với okHttp sẵn mà có thể là phiên bản 3.8.0, ví dụ. Không bao gồm 3.8.1 tự gây ra xung đột/vấn đề. – AndroidNoob

Trả lời

0

có bạn có thể buộc phiên bản okhttp mới bằng cách thêm compile 'com.squareup.okhttp3:okhttp:3.8.1'

Nếu bạn chạy gradlew app:dependencies, bạn sẽ thấy điều này:

releaseCompileClasspath - Resolved configuration for compilation for variant: release 
+--- com.squareup.retrofit2:retrofit:2.3.0 
| \--- com.squareup.okhttp3:okhttp:3.8.0 -> 3.8.1 
|   \--- com.squareup.okio:okio:1.13.0 

Nó là phương tiện, mà Retrofit tuyên bố phụ thuộc okhttp:3.8.0, nhưng Gradle thay thế nó bằng okhttp:3.8.1

PS: Đây được áp dụng cho tình hình, khi bạn không xác định chiến lược phân giải phụ thuộc tùy chỉnh

0

Thêm hai này và cố gắng

compile 'com.squareup.okhttp:okhttp-urlconnection:2.0.0' 
compile 'com.squareup.okhttp:okhttp:2.0.0' 
+0

Tai nạn tôi quan tâm đã được khắc phục trong 3.8.1. – AndroidNoob

+0

Tôi đang sử dụng 2.0.0 –

0
compile 'com.squareup.retrofit2:retrofit:2.1.0' 
    compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
    compile 'com.google.code.gson:gson:2.7' 
    compile 'com.squareup:otto:1.3.8' 
    compile 'com.squareup.okhttp3:logging-interceptor:3.4.1' 
+0

Nhận xét văn bản cần thiết này! –

+0

Trong khi mã chỉ có câu trả lời có thể giải quyết vấn đề ban đầu, nó sẽ giúp người khác đọc câu trả lời của bạn nếu bạn đưa ra một số nhận xét/giải thích như những gì bạn đang làm và tại sao. –

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