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


82

そのため、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呼び出しを行おうとしたとき。


Retrofitがわからないので、どこかにコンバーターを指定できるアノテーションがあると思います。
Jiang YD 2015

@JiangYDはあなたが何を意味するのかわからない
軌道

このエラーについてさらにコードを投稿する必要があります。API呼び出しを投稿します。
heloisasim 2015

square.github.io/retrofitの例では、このエラーがスローされます。質問をしている人が信じられない場合、または詳細が必要な場合は、試してみてください。彼らは派手なことを何もしようとはしていません。
Andrew Koster 2016年

回答:


135

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

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

2
だから私は昨夜、基本的にこれら2つのクラスをプロジェクトにコピーして、を呼び出すことでこれを修正しました.addConverterFactory(GsonConverterFactory.create())。Gradleを介してコンバーターをリンクする方が明らかにクリーンなオプションなので、これを答えとしてマークします。
軌道

1
またのためのあなたのバージョンことを確認してconverter-gson試合のためのあなたのバージョンretrofitを参照-自体がstackoverflow.com/questions/32902157/...
gravitron

この回答は古くなっています。Gradleはこのバージョンと同期すらしません。コンパイルははるかに少なくなります。'com.squareup.retrofit2:converter-gson:2.0.2'をコンパイルする必要があります
Andrew Koster

15

Retrofit 2.0では、Converterはパッケージに含まれていません。また、Retrofit 2.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を更新します。

implementation "com.squareup.retrofit2:converter-gson:$retrofit_version"

そして、プロジェクトレベルのbuild.gradleファイルに拡張子を追加します

ext {
retrofit_version= "2.x.x"
}

この回答には、関連するGradleの依存関係は含まれていません。
Andrew Koster 2016年

@Ak私は彼らがこれらすべてのことについて言及した最高の最大の更新リンクについて言及しました。現在のバージョンに基づいてAPIベースを更新する必要があります
Ajit Kumar Dubey 2016年

7

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

私にとって、以下の依存関係はすでにありました

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

gson2.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();

この回答は最新のものであり、古い回答よりも多く、関連する依存関係さえ含まれていないものよりも多くの票を獲得する必要があります。
Andrew Koster 2016年

6

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

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


3

最新のRetrofit2.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'

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

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

そして、あなたはより多くの情報を得るためにレトロフィットを見ることができます!助けてください!


1

では私の場合(コルーチンとKotlin)私は例外を受け取りました。

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定義から削除され、例外がなくなりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.