Nachrüst-Konverterfabrik kann nicht auf GsonConverterFactory zugreifen

Lesezeit: 3 Minuten

Benutzer-Avatar
AEMLoviji

Ich habe diese Abhängigkeiten in mein Projekt aufgenommen:

„com.squareup.retrofit:retrofit:2.0.0-beta2“ kompilieren
„com.squareup.retrofit:converter-gson:2.0.0-beta1“ kompilieren

Ich habe eine Klasse, in der ich per Retrofit auf meine APIs zugreifen werde:

 public static  <S> S createService(Class<S> serviceClass, String baseUrl) {


        Retrofit builder = new Retrofit.Builder()
                .baseUrl(baseUrl)
                .addConverterFactory(GsonConverterFactory.create())
                .build();    

            RestAdapter adapter = builder.build();*/

        return  builder.create(serviceClass);
    }

Und jetzt gibt es mir diesen Kompilierzeitfehler:

Fehler: (24, 17) Fehler: Methode addConverterFactory im Klassengenerator kann nicht auf bestimmte Typen angewendet werden; Erforderlich: Factory gefunden: GsonConverterFactory Grund: Tatsächliches Argument GsonConverterFactory kann nicht durch Methodenaufrufkonvertierung in Factory konvertiert werden

Wie kann ich das lösen? Ich habe mich an die Dokumentation gehalten. Was ist falsch?

Benutzer-Avatar
Ilja Tretjakow

Versuchen Sie, dieselbe Version für Nachrüstung und Konverter-GSON zu verwenden – 2.0.0-beta2. Du benutzt beta2 zum Nachrüsten u beta1 für Konverter.

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

Wichtiger Hinweis!

Retrofit ändert seitdem seinen Paketnamen 2.0.0-beta3 Ausführung. Jetzt sollten Sie verwenden com.squareup.retrofit2. Hier ist ein Beispiel:

implementation 'com.squareup.retrofit2:retrofit:2.2.0'
implementation 'com.squareup.retrofit2:converter-gson:2.2.0'

  • Du bist ein großer Mann). Aber es gibt keine Ressource, die anzeigt, dass ich dieselbe Beta2-Version verwenden muss.

    – AEMLoviji

    2. Oktober 2015 um 7:34 Uhr

  • @AEMLoviji Die Ressource heißt gesunder Menschenverstand, nicht wahr? Vor allem, weil während der Betaphase Schnittstellen Änderungen unterliegen, die in den Retrofit-Dokumenten geschrieben sind.

    – Eugen Pechanec

    2. Oktober 2015 um 7:47 Uhr

  • Ich bin gerade auf dieses Problem gestoßen. und sie löste 2 Stunden zurück. danken!)

    – ip696

    2. Oktober 2015 um 9:59 Uhr

  • Bitte erwägen Sie, die Antwort zu aktualisieren, da der Paketname ab Beta 2.0.3 nicht vorhanden ist com.squareup.retrofit mehr aber com.squareup.retrofit2 stattdessen.

    – umkehren

    27. Februar 2016 um 16:25 Uhr

Im build.gradle (App) statt:

implementation 'com.google.code.gson:gson:2.8.2'

schreiben:

implementation 'com.squareup.retrofit2:converter-gson:2.3.0'

Mit der neuesten Beta-Version 2.0.3 müssen Sie Folgendes hinzufügen:

compile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta3'

Stellen Sie sicher, dass die Version der Retrofit-Bibliothek mit der Version des GSON-Konverters übereinstimmt.

  • Der Unterschied ist schwer zu erkennen. Also für alle, die so blind sind wie ich – Sie müssen hinzufügen 2 zum Paketnamen.

    – umkehren

    27. Februar 2016 um 16:23 Uhr

Benutzer-Avatar
Joe

Das ist das Neueste:

compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0'

Wenn Sie die Beta-Version verwenden:

compile 'com.squareup.retrofit:retrofit:2.0.0-beta2'
compile 'com.squareup.retrofit:converter-gson:2.0.0-beta2'
compile 'com.squareup.retrofit:adapter-rxjava: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

Wenn Sie diesen Fehler erhalten, ist der Grund eine falsche Abhängigkeit enthalten.

Abhängigkeit in der Anwendung hinzufügen/ändern build.gradle Datei als

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

Stellen Sie sicher, dass die Konverterversion ist 2.0.0-beta2 nicht 2.0.0-beta1.

1217150cookie-checkNachrüst-Konverterfabrik kann nicht auf GsonConverterFactory zugreifen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy