web-dev-qa-db-ja.com

(レトロフィット)クラスクラッシュアプ​​リのコンバーターが見つかりませんでした

そのため、Retrofit 2.0.0が最近リリースされ、実際に使用方法に関する更新された例はありませんが、基本的なAPI呼び出し用に実装しようとしています。私は

Java.lang.IllegalArgumentException: Unable to create converter for class` 

のせいで

Caused by: Java.lang.IllegalArgumentException: Could not locate converter for class orbyt.app.dataclass. Tried:
* retrofit.OkHttpBodyConverterFactory

API呼び出しをしようとするとき。

76
Orbit

私は同じ問題に直面していました。以下を追加して修正しました:

compile 'com.squareup.retrofit2:converter-gson:<latest-version>'

私のbuild.gradleに

次に、Retrofitインスタンスを作成するときにコンバーターを指定します。

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constants.API_BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
125
YacSrk

Retrofit 2.0では、Converterはパッケージに含まれていません。Retrofit2.0を使用している場合は、必ず新しいURLパターンに従ってください

ベースURL:常に/で終わる

@ Url:/で始めないでください

Retrofit retrofit = new Retrofit.Builder()
        .baseUrl(Constants.API_BASE_URL)
        .addConverterFactory(GsonConverterFactory.create())
        .build();

2.0の詳細については、このリンクを参照してください Retrofit 2.0:最大の更新

また、build.gradleも更新します。

14

それに応じて改造バージョンを変更する

私にとって、依存関係はすでに存在していました

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

Gson 2.0.2の場合、変更しました

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

それから加えて

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(Constants.API_BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();
7

Retrofit V2の場合、次のリポジトリを追加します-

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'

以下のコードを使用してください-

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

それが役立つことを願っています:)

6
Neo

最新のRetrofit 2.0では、最新バージョンをインポートする必要があります。

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'

V2.0ではbaseUrl()、注意して呼び出してください。これは「/」で終わる必要があり、メソッドでは「/」でurlを開始しません

@POST("classes/info")
Call<ContactBean> insertInfo(@Body ContactBean bean);

Retrofit で詳細を確認できます!助けて欲しい!

3
joe

私の場合 (Koutlin with coroutines)で例外を受け取りました:

Retrofit2.Callのコンバーターを作成できません

メソッドQueries.exportPdfの場合。

原因:Java.lang.IllegalArgumentException:retrofit2.CallのResponseBodyコンバーターが見つかりませんでした

リクエストに問題がありました:

@FormUrlEncoded
@Streaming
@POST("export-pdf/")
suspend fun exportPdf(
    @Field("token") token: String
): Call<ResponseBody>

定義からsuspendを削除し、例外が消えました。

0
CoolMind