小编Moh*_*tif的帖子

无法为类 java.lang.Object 创建调用适配器 - Retrofit

我正在学习使用改造进行 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)

api android mvvm kotlin retrofit

5
推荐指数
2
解决办法
7967
查看次数

标签 统计

android ×1

api ×1

kotlin ×1

mvvm ×1

retrofit ×1