2017-07-20 2 views
5

Dans notre application, nous utilisons retrofit pour la mise en réseau avec les dépendances suivantes:pour build.gradle de dépendances retrofit et dernière version de okhttp

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

Sur la fin nous avons commencé à obtenir ce crash qui a été résolu. Comment puis-je résoudre ce problème au sein de notre application? Ma compréhension est que retrofit est construit sur le dessus de la bibliothèque okHttp. Donc, cela signifie que nous devrions attendre une nouvelle version de mise à niveau qui inclut la nouvelle version okHttp OU je peux inclure manuellement la nouvelle version de okHttp comme séparé dépendance et finissent avec:

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' 

config Proguard est (seule la partie de mise à niveau si)

-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

Les dépendances que vous avez incluses contiennent déjà la bibliothèque 'okhttp' . Très probablement, votre fichier proguard n'est pas correct. Pouvez-vous le coller ici? – Yashasvi

+0

il s'agit de la okhttp lib et il est fixé à la version 3.8.1 il suffit de l'ajouter à votre gradge –

+0

@OussemaAroua si je comprends bien quand j'inclus de rénovation il est déjà livré avec okHttp intégré qui pourrait être la version 3.8.0 par exemple. Ne pas inclure 3.8.1 provoquer manuellement des conflits/problèmes. – AndroidNoob

Répondre

0

Oui, vous pouvez forcer une nouvelle version de okhttp en ajoutant compile 'com.squareup.okhttp3:okhttp:3.8.1'

Si vous exécutez gradlew app:dependencies, vous verrez ceci:

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 

Il est moyen, qui rénovent déclarer la dépendance okhttp:3.8.0, mais Gradle le remplacer par okhttp:3.8.1

PS: Ceci est appliqué pour la situation, lorsque vous ne définissez pas la stratégie de résolution de dépendance personnalisée

0

Ajouter ce deux et essayer

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

Le crash qui m'intéresse a été corrigé dans 3.8.1. – AndroidNoob

+0

J'utilise ce 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

Commentaires textuels requis! –

+0

Alors que les réponses au code seulement peuvent résoudre le problème original, cela aiderait les autres à lire votre réponse si vous avez donné quelques commentaires/explications sur ce que vous faites et pourquoi. –