Daher wurde Retrofit 2.0.0 kürzlich veröffentlicht und es gibt keine wirklich aktualisierten Beispiele für die Verwendung, aber ich versuche, es für einen grundlegenden API-Aufruf zu implementieren. Ich bekomme eine
Java.lang.IllegalArgumentException: Unable to create converter for class`
verursacht durch
Caused by: Java.lang.IllegalArgumentException: Could not locate converter for class orbyt.app.dataclass. Tried:
* retrofit.OkHttpBodyConverterFactory
Beim Versuch, den API-Aufruf zu tätigen.
Ich hatte das gleiche Problem. Ich habe es behoben, indem ich Folgendes hinzufügte:
compile 'com.squareup.retrofit2:converter-gson:<latest-version>'
zu meinem build.gradle
Geben Sie dann den Konverter an, wenn Sie meine Retrofit-Instanz erstellen.
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
In Retrofit 2.0 ist Converter nicht im Paket enthalten, und wenn Sie Retrofit 2.0 verwenden, stellen Sie sicher, dass Sie dem neuen URL-Muster folgen
Basis-URL: endet immer mit/
@Url: Beginne NICHT mit/
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Weitere Informationen zu 2.0 finden Sie unter folgendem Link Retrofit 2.0: Das größte Update
Und auch build.gradle aktualisieren.
Nachrüstversion entsprechend ändern
Für mich unten war die Abhängigkeit schon da
compile 'com.squareup.retrofit2:retrofit:2.0.2'
Für gson 2.0.2 habe ich geändert
compile 'com.squareup.retrofit2:converter-gson:2.0.2'
Dann füge hinzu
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(Constants.API_BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Für Retrofit V2 fügen Sie die folgenden Repositories hinzu -
compile 'com.squareup.retrofit2:retrofit:2.0.0'
compile 'com.google.code.gson:gson:2.6.2'
compile 'com.squareup.retrofit2:converter-gson:2.0.0'
Verwenden Sie jetzt den folgenden Code -
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
Hoffe es wird helfen :)
Im neuesten Retrofit 2.0 sollten Sie die neueste Version importieren:
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'
Rufen Sie baseUrl()
, bei v2.0 auf, es sollte das Ende von "/" sein, und bei der Methode würden Sie die URL nicht mit "/" starten.
@POST("classes/info")
Call<ContactBean> insertInfo(@Body ContactBean bean);
Und Sie können Retrofit sehen, um mehr Informationen zu erhalten! Hoffe Hilfe!
In mein Fall (Kotlin mit Koroutinen) erhielt ich die Ausnahme:
Konverter für retrofit2.Call kann nicht erstellt werden
für die Methode Queries.exportPdf.
Auslöser: Java.lang.IllegalArgumentException: Der ResponseBody-Konverter für retrofit2.Call konnte nicht gefunden werden
Ein Problem war in einer Anfrage:
@FormUrlEncoded
@Streaming
@POST("export-pdf/")
suspend fun exportPdf(
@Field("token") token: String
): Call<ResponseBody>
suspend
aus der Definition entfernt und Ausnahmen verschwunden.