webentwicklung-frage-antwort-db.com.de

Retrofit 2-Beispiel-Tutorial, aber GsonConverterFactory-Anzeigefehler "Symbol kann nicht aufgelöst werden"

Ich versuche, Retrofits 2 Tutorial, zu folgen, aber in diesem Teil des Codes gibt es ein GsonConverterFactory, das den Fehler Cannot resolve symbol Anzeigt:

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

Zuvor habe ich in meinem gradle.build hinzugefügt, ich bin nicht sicher, ob ich GSON hinzufügen soll, da sie sagen, dass Retrofit 1.9 es hat, aber nichts über Retrofit 2 erwähnt wird:

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

EDIT

nachrüstung 2 ist jetzt stabil. Verwenden

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

in deinem build.gradle Abhängigkeitsabschnitt

alte Antwort

mit retrofit 2.0 musst du in deinem build.gradle die convert factory deklarieren die du verwenden willst. Hinzufügen

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

zu deinem gradle und synchronisiere es erneut

74
Blackbelt

Von ein anderer Artikel auf dieser Site

Retrofit 2 wird standardmäßig nicht mit Gson ausgeliefert. Früher mussten Sie sich keine Gedanken über einen integrierten Konverter machen, und Sie konnten Gson von Gson aus verwenden Box. Diese Bibliotheksänderung wirkt sich auf Ihre App aus und Sie müssen einen Konverter auch als Geschwisterpaket importieren. Wir werden den Konverter später in diesem Beitrag berühren und Ihnen zeigen, wie Sie den Gson oder einen anderen Antwortkonverter für Ihre App konfigurieren.

Fügen Sie dies also zu Ihrem build.gradle

dependencies {  
    compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
}
11
Andrew Brooke

Als aktualisierte Retrofit-Bibliothek mit neuer Version

Mit

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

Sie müssen die Abhängigkeit einschließen von:

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

Neue Version ist jetzt verfügbar

compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
4
Denys Milano

Der Grund für ein solches Verhalten in meinem Fall war Tippfehler in build.gradle Abhängigkeit. Nach beta4 release Ich habe aktualisiert von:

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

zu

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

und die richtige abhängigkeit war

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


Beachten Sie auch, dass beta4 - Nachrüstung mit beta2 - gson nicht funktioniert!

4
Nikita Barishok

Ich habe benutzt

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'

verwenden Sie retrofit und gson mit demselben Versionscode

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'

benutze das

1
Keshav Gera