web-dev-qa-db-fra.com

Exemple de didacticiel Retrofit 2 mais erreur d'affichage GsonConverterFactory "Impossible de résoudre le symbole"

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'
}
29
StackOverflower

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

74
Blackbelt

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'
}
11
Andrew Brooke

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'
4
Denys Milano

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!

4
Nikita Barishok

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

1
Nilesh Panchal
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

1
Keshav Gera