And*_*oob 5 android retrofit retrofit2 okhttp3
在我们的应用程序中,我们使用改造来进行以下依赖的网络连接:
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
Run Code Online (Sandbox Code Playgroud)
最近我们开始得到这个已经解决的崩溃.那我怎么在我们的应用程序中解决这个问题?我的理解是改造是建立在okHttp库的基础之上的.这是否意味着我们必须等待包含新okHttp版本的新版本改装或者我可以手动包含新版本的okHttp作为单独的依赖并最终得到:
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'
Run Code Online (Sandbox Code Playgroud)
Proguard配置(虽然只是改装部分)
-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.**
Run Code Online (Sandbox Code Playgroud)
是的,您可以通过添加来强制使用新的 okhttp 版本compile 'com.squareup.okhttp3:okhttp:3.8.1'
如果你运行gradlew app:dependencies,你会看到这个:
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
Run Code Online (Sandbox Code Playgroud)
这意味着,Retrofit 声明了 dependency okhttp:3.8.0,但是 Gradle 将其替换为okhttp:3.8.1
PS:这适用于没有定义自定义依赖解析策略的情况
| 归档时间: |
|
| 查看次数: |
2837 次 |
| 最近记录: |