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'
}
21
demandé sur StackOverflower 2015-10-23 17:09:33

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

61
répondu Blackbelt 2017-10-26 11:20:23

À 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'
}
11
répondu Andrew Brooke 2015-10-23 14:14:09

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 !

4
répondu Nikita Barishok 2016-03-01 11:29:48

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'
3
répondu Pratik Butani 2016-04-25 06:41:39

Nouvelle version est maintenant disponible

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
3
répondu Denys Milano 2016-06-23 19:44:41

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

1
répondu Nilesh Panchal 2016-09-24 07:10:26
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
répondu Keshav Gera 2017-07-18 05:04:44