Kotlin 协程暂停 fun + Retrofit 抛出“未找到 Retrofit 注解”错误

Dap*_*app 5 android coroutine kotlin retrofit

我试图在 2.5.1-SNAPSHOT 中使用 Retrofit 的协程支持,但我不断遇到奇怪的异常。

我的改造服务类别有:

@GET("weather")
suspend fun getForecast(@Query("q") query: String, @Query("num_of_days") numDays: String = "1",
                @Query("format") format : String = "json", @Query("key") apiKey: String = API_KEY)
        : Weather
Run Code Online (Sandbox Code Playgroud)

当我尝试调用它时,我得到:

2019-05-18 13:57:01.507 27422-27477/com.my.app  E/MainPresenter$onResume$$inlined$CoroutineExceptionHandler: Something went wrong: No Retrofit annotation found. (parameter #5)
    for method WeatherService.getForecast
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,因为错误出在参数 #5 上,但只有 4 个参数。有人以前见过这个吗?

另请注意,这是用于调试构建

minifyEnabled false
Run Code Online (Sandbox Code Playgroud)

所以我怀疑它是proguard...

Dap*_*app 3

结果您还需要转换器工厂的 SNAPSHOT 版本。

com.squareup.retrofit2:converter-moshi:2.5.1-SNAPSHOT
Run Code Online (Sandbox Code Playgroud)