Exemple de tutoriel Retrofit 2 mais erreur d'affichage GsonConverterFactory " impossible de résoudre le symbole"
J'essaie de suivre le tutoriel 2 de Retrofit, 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);
}
}
Précédemment j'ai ajouté dans mon gradle.construire, Je ne suis pas sûr 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'
}
7 réponses
Modifier
Rénovation 2 est maintenant stable. Utiliser
compile 'com.squareup.retrofit2:retrofit:2.3.0'
compile 'com.squareup.retrofit2:converter-gson:2.3.0'
Dans votre section build.gradle
dépendance
vieille 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
À Partir de un autre article sur ce site
Retrofit 2 n'est pas livré avec Gson par défaut. avant, vous n'aviez pas besoin de vous soucier d'un convertisseur intégré et vous pouviez utiliser Gson hors de la boîte. Ce changement de bibliothèque affecte votre application et vous devez également importer un convertisseur en tant que paquet frère. Nous toucherons le convertisseur plus tard dans ce post 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'
}
La raison d'un tel comportement dans mon cas était une faute de frappe dans build.gradle
dépendance.
Après la libération de beta4
, j'ai mis à jour à partir de:
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'
Notez également que beta4-retrofit ne fonctionnera pas avec beta2-gson !
Comme bibliothèque de modification mise à jour avec une nouvelle Version
Avec
compile 'com.squareup.retrofit2:retrofit:2.0.2'
Vous devez inclure la dépendance de:
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
Nouvelle version est maintenant disponible
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
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'
Utilisez 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