我正在学习使用改造进行 api 调用,但是每当我尝试从 api 发出 get 请求时,我的应用程序就会崩溃并给出以下错误。
java.lang.IllegalArgumentException:无法为方法 WeatherApi.getweatherbycity 的类 java.lang.Object 创建调用适配器
原因:java.lang.IllegalArgumentException:无法找到类 java.lang.Object 的调用适配器。尝试过:*retrofit2.adapter.rxjava.RxJavaCallAdapterFactory *retrofit2.ExecutorCallAdapterFactory在retrofit2.Retrofit.nextCallAdapter(Retrofit.java:237)在retrofit2.Retrofit.callAdapter(Retrofit.java:201)在retrofit2.ServiceMethod$Builder.createCallAdapter(ServiceMethod) .java:232) ... 29 更多
我尝试了 stackoverflow 中的许多解决方案,但没有任何效果,我对 mvvm 和 viewmodels 也很陌生。
类改造实例{
companion object{
private val retrofit by lazy{
Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJavaCallAdapterFactory.create())
.build()
}
val api by lazy{
retrofit.create(WeatherApi::class.java)
}
}
Run Code Online (Sandbox Code Playgroud)
}
接口WeatherApi {
@GET("data/2.5/weather")
suspend fun getweatherbycity(
@Query("q")
cityname: String="London",
@Query("appid")
api_key: String = API_KEY
): Response<WeatherResponse>
Run Code Online (Sandbox Code Playgroud)
}
我在 android studio 中使用 Json 到 kotlin 转换器插件创建了天气响应类
data class WeatherResponse(
val base: String, …Run Code Online (Sandbox Code Playgroud)