Подтвердить что ты не робот

(Модернизация) Не удалось найти конвертер для приложения для разбивки класса

Итак, 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.

4b9b3361

Ответ 1

Я столкнулся с той же проблемой. Я исправил это, добавив:

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

В Retrofit 2.0 конвертер не входит в пакет и при использовании Retrofit 2.0 Make Sure следует новый шаблон URL

Базовый URL: всегда заканчивается на /

@Url: НЕ начинать с /

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

Для получения дополнительной информации о версии 2.0 Перейдите по этой ссылке Retrofit 2.0: Самое большое обновление

А также обновите build.gradle.

Ответ 3

Измените модифицированную версию соответственно

Для меня ниже зависимость была там уже

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

Ответ 4

Для 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();

Надеюсь, это поможет:)

Ответ 5

В последней версии 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'

Будьте осторожны, звоните baseUrl(), в версии 2.0, это должно быть конец "/", и в этом методе вы запустили бы трэг с помощью "/"

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

И вы можете увидеть Retrofit, чтобы получить больше информации! Надеемся на помощь!

Ответ 6

В моем случае (Котлин с сопрограммами) я получил исключение:

Невозможно создать конвертер для retrofit2.Call

для метода Queries.exportPdf.

Причина: java.lang.IllegalArgumentException: Не удалось найти преобразователь ResponseBody для retrofit2.Call

Проблема была в запросе:

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

Убрал suspend из определения и исключения исчезли.