(Модернизация) Не удалось найти конвертер для приложения для разбивки класса
Итак, 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.
Ответы
Ответ 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
из определения и исключения исчезли.