2017-07-20 49 views
5

在我們的應用程序最新版本的build.gradle的依賴關係,我們使用改裝用於具有以下依賴關係網絡:的改造和okhttp

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

近來我們開始得到這個crash已解決。那麼我如何在我們的應用程序中修復這個問題 我的理解是,改造是建立在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' 

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.** 
+0

你已經包含的依賴包含'okhttp'庫。最有可能的是,你的proguard文件不正確。你能把它粘貼在這裏嗎? – Yashasvi

+0

這是關於okhttp庫,它固定在3.8.1版本只是將其添加到您的gradle –

+0

@OussemaAroua如果我正確理解,當我包括改造它已經內置okHttp可能是3.8.0版本的例如。不包括3.8.1手動導致衝突/問題。 – AndroidNoob

回答

0

是的,你可以通過添加compile 'com.squareup.okhttp3:okhttp:3.8.1'迫使新okhttp版本

如果運行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 

它是手段,是改造聲明依賴okhttp:3.8.0,但搖籃通過okhttp:3.8.1

PS替換:這是適用於情況,當你不定義自定義依賴性解析策​​略

0

添加這兩個嘗試

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

我感興趣的崩潰在3.8.1中修復。 – AndroidNoob

+0

我使用的是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

需要文字評論! –

+0

雖然代碼只有答案可能會解決原來的問題,但如果你給出了一些評論/解釋,如你做什麼和爲什麼,它會幫助他人閱讀你的答案。 –