J'essaie de suivre le tutoriel de Retrofit 2 , mais sur cette partie du code il y a un GsonConverterFactory
qui affiche l'erreur Cannot resolve symbol
:
public class ServiceGenerator {
public static final String API_BASE_URL = "http://your.api-base.url";
private static OkHttpClient httpClient = new OkHttpClient();
private static Retrofit.Builder builder =
new Retrofit.Builder()
.baseUrl(API_BASE_URL)
//THIS IS THE LINE WITH ERROR!!!!!!!!!!!!
.addConverterFactory(GsonConverterFactory.create());
public static <S> S createService(Class<S> serviceClass) {
Retrofit retrofit = builder.client(httpClient).build();
return retrofit.create(serviceClass);
}
}
Auparavant, j'ai ajouté dans mon gradle.build, je ne sais pas si je devrais ajouter GSON car ils disent que Retrofit 1.9 l'a, mais rien n'est mentionné à propos de Retrofit 2:
dependencies {
// Retrofit & OkHttp
compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
}
MODIFIER
retrofit 2 est maintenant stable. Utilisation
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
dans votre build.gradle
section de dépendance
( ancienne réponse
avec Retrofit 2.0, vous devez déclarer dans votre build.gradle l'usine de conversion que vous souhaitez utiliser. Ajouter
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
à votre gradle et synchronisez-le à nouveau
De n autre article sur ce site
Retrofit 2 n'est pas livré avec Gson par défaut. Avant, vous n'aviez pas à vous soucier d'un convertisseur intégré et vous pouviez utiliser Gson hors du boîte. Cette modification de bibliothèque affecte votre application et vous devez également importer un convertisseur en tant que package frère. Nous aborderons le convertisseur plus tard dans cet article et vous montrerons comment configurer le Gson ou tout autre convertisseur de réponse pour votre application.
Ainsi, ajoutez ceci à votre build.gradle
dependencies {
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
Comme bibliothèque de mise à jour mise à jour avec une nouvelle version
Avec
compile 'com.squareup.retrofit2:retrofit:2.0.2'
Vous devez obligatoirement inclure la dépendance de:
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
La nouvelle version est maintenant disponible
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
La raison d'un tel comportement dans mon cas était une faute de frappe dans build.gradle
dépendance. Après beta4
version que j'ai mise à jour depuis:
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
à
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta4'
et la bonne dépendance était
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
A noter également que beta4 - retrofit ne fonctionnera pas avec beta2 - gson!
J'ai utilisé
RestService restService=new Retrofit.Builder()
.baseUrl(Constants.Base_URl)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.client(new OkHttpClient.Builder().readTimeout(60, TimeUnit.SECONDS).connectTimeout(60, TimeUnit.SECONDS).build())
.build().create(RestService.class);
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
// RxJava adapter for retrofit
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
// RxJava libraries
compile 'io.reactivex:rxjava:1.0.10'
compile 'io.reactivex:rxandroid:1.1.0'
utiliser retrofit et gson du même code de version
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:retrofit:2.0.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
utilisez ceci