2015-10-23 8 views
19

Sto cercando di seguire di retrofit 2 tutorial, ma su questa parte del codice c'è una GsonConverterFactory che visualizza l'errore Cannot resolve symbol:Retrofit 2 esempio tutorial, ma errore di visualizzazione GsonConverterFactory "Impossibile risolvere il simbolo"

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); 
    } 
} 

precedenza ho aggiunto nel mio gradle.build, io non sono sicuro se devo aggiungere GSON dal momento che dicono Retrofit 1.9 ha, ma nulla viene menzionato su Retrofit 2:

dependencies { 
    // Retrofit & OkHttp 
    compile 'com.squareup.retrofit:retrofit:2.0.0-beta2' 
} 
+0

Non è possibile utilizzare GsonConverterFactory in retrofit 2, dal momento che è applicabile solo a Retrofit 1 –

+0

I sto seguendo questo tutorial: http://wiki.workassis.com/android-retrofit-2-1-http-client/ –

+0

Fare riferimento a http://stackoverflow.com/a/41015925/3470479 – PrakhaRaM

risposta

54

EDIT

il retrofit 2 è ora stabile. Utilizzare

compile 'com.squareup.retrofit2:retrofit:2.3.0' 
compile 'com.squareup.retrofit2:converter-gson:2.3.0' 

nella sezione build.gradle dipendenza

vecchia risposta

con Retrofit 2.0 si deve dichiarare nel vostro build.gradle fabbrica convertito che si desidera utilizzare. Aggiungere

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 

al vostro Gradle e sincronizzarlo di nuovo

+0

ciao grazie non posso ti involo perché sembra che non abbia abbastanza rappresentanti, ma la tua risposta anche aiutato – StackOverflower

11

Da another article su quel sito

Retrofit 2 non viene fornito con GSON per impostazione predefinita. Prima, non dovevi preoccuparti di alcun convertitore integrato e potresti usare Gson immediatamente. Questa modifica della libreria influisce sulla tua app e devi anche importare un convertitore come pacchetto fratello. Toccheremo il convertitore più avanti in questo post e ti mostreremo come configurare Gson o qualsiasi altro convertitore di risposte per la tua app.

Quindi, aggiungere questo al vostro build.gradle

dependencies { 
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 
} 
4

Il motivo di tale comportamento nel mio caso è stato errore di battitura nel build.gradle dipendenza. Dopo beta4 rilascio Ho aggiornato da:

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' 

al

compile 'com.squareup.retrofit:converter-gson:2.0.0-beta4' 

e la dipendenza destra era

compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4' 


vale la pena anche notare, che beta4 - il retrofit non funzionerà con beta2 - gson!

3

come aggiornato Retrofit Biblioteca con la nuova versione

Con

compile 'com.squareup.retrofit2:retrofit:2.0.2' 

È necessario disporre di includere la dipendenza di:

compile 'com.squareup.retrofit2:converter-gson:2.0.2' 
3

La nuova versione è ora disponibile

compile 'com.squareup.retrofit2:retrofit:2.1.0' 
compile 'com.squareup.retrofit2:converter-gson:2.1.0' 
0

Ho usato

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' 

uso retrofit e GSON dello stesso codice della versione

0
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' 

uso questo

Problemi correlati