J'essaie d'utiliser Retrofit 2 et RxJava en suivant le guide de ce https://inthecheesefactory.com/blog/retrofit-2.0/fr
Dans la section "Intégration de RxJava avec CallAdapter ", Explique comment utiliser RxJava avec la modernisation
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("http://api.nuuneoi.com/base/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build();
Cependant, lors de la compilation, l'erreur suivante apparaît:
Error:(63, 71) error: incompatible types: RxJavaCallAdapterFactory cannot be converted to Factory
Comment puis-je résoudre ce problème? Merci
Assurez-vous que vous utilisez le même identifiant de groupe et la même version pour la dépendance principale Retrofit, la dépendance du convertisseur Gson et la dépendance de l'adaptateur RxJava.
J'imagine que le vôtre ressemble à quelque chose comme ça:
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit:adapter-rxjava:2.0.0-beta2'
(Notez qu'ils utilisent des groupes différents et des numéros de version différents)
Ils devraient tous ressembler à ceci:
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.2'
L'ajout de "com.squareup.retrofit: adapter-rxjava: 2.0.0" donne l'erreur suivante
Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'. > com.Android.build.api.transform.TransformException: com.Android.builder.packaging.DuplicateFileException: Duplicate files copied in APK META-INF/rxjava.properties
Mais, au lieu de cela, l'ajout de "compile" com.jakewharton.retrofit: retrofit2-rxjava2-adapter: 1.0.0 "rend l'emballage réussi.
changez votre adaptateur RXJava Rénové en
implementation "com.squareup.retrofit2:adapter-rxjava2:$retrofit_version"
Et changez votre CallAdapterFactory en
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
ça va ressembler à quelque chose comme ça
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();