web-dev-qa-db-de.com

Wie verwende ich den Gson-Konverter in RetroFit?

Ich erstelle eine einfache RetroFit-Anwendung für Bildungszwecke und verwende IntelliJ IDEA als meine IDE.

Ich habe die Retrofit-Bibliothek ordnungsgemäß importiert (zumindest glaube ich, dass dies der Fall ist), kann das Gson Converter-Paket jedoch nicht abrufen. Ich habe die Datei gson.jar von Google installiert, aber in keiner dieser Bibliotheken befindet sich eine Klasse namens "GsonConverterFactory", die zum Parsen von JSON erforderlich ist.

Bearbeiten: Ich bin auf Windows.

23
vic.vele

Fügen Sie compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2' Zu Ihrer build.gradle - Datei hinzu und lassen Sie die Abhängigkeit auflösen oder fügen Sie entsprechende Gläser zu Ihrem Bulid-Pfad hinzu.

dann benutze GsonConverterFactory.create() um den Converter Factory

Ich habe versucht, 2.0.0-beta1 Zu verwenden, aber es gab mir einen unzulässigen Typkonvertierungsfehler für die Fabrik, wie unten angegeben, also verschoben nach 2.0.0-beta2

  error: method addConverterFactory in class Builder cannot be applied to   given types;
    required: Factory
    found: GsonConverterFactory
    reason: actual argument GsonConverterFactory cannot be converted to Factory by method invocation conversion

Mein Vorschlag ist also, 2.0.0-beta2 Zu verwenden.

mein build.gradle hat die folgenden Abhängigkeiten, um die Nachrüstung zu beheben.

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

Wenn Sie Retrofit 2 verwenden, müssen Sie das Paket convert-gson Einschließen. Für Gradle-Builds können Sie compile 'com.squareup.retrofit:converter-gson:2.0.0-beta3' Zu Ihrem Abhängigkeitsbereich hinzufügen.

Informationen zu anderen Build-Systemen oder zum Herunterladen der JAR-Datei finden Sie auf der Seite Maven Central convert-gson .

19
iagreen

Versuche dies

/* JSON */
compile 'com.google.code.gson:gson:2.5'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'

// >Retrofit & OkHttp
compile ('com.squareup.retrofit2:retrofit:2.0.0-beta3') {
    // exclude Retrofit’s OkHttp peer-dependency module and define your own module import
    exclude module: 'okhttp'
}
compile 'com.squareup.okhttp3:okhttp:3.0.1'
14
Joolah

in deinem Modul: app build.gradle hinzufügen

compile 'com.squareup.retrofit2:converter-gson:[retrofit2 version]'

die obige Version ist mit Ihrer Retrofit2-Version identisch, sodass Ihre Retrofit2-Version beispielsweise 2.1.0 lautet und Ihre build.gradle folgendermaßen aussehen sollte:

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