我正在使用 Retrofit 2 库版本 2.3.0,突然间它开始用零而不是实际数字替换整数路径参数。
我使用的是 Kotlin (1.2.21),我有一个类似的方法:
@GET("posts/{postId}")
fun getPosts(@Path("postId") postId: Long): Single<Post>
这工作正常,但现在当我在 Android 6(设备和模拟器)上运行我的应用程序时,postId
路径参数始终为零,即 posts/0
被调用。 Android 7 和 8 没问题。 Retrofit 和 OkHttp 版本没有变化,界面也没有变化。
我查看了构建的请求,里面的 OkHttpCall
有一个 args
数组,其中一个值是 Long
类型,值为 0。这是仅在 Android 6 上,其他人在那里具有正确的值。 ServiceMethod
在界面中设置了正确的 URL,它有一个 ParameterHandler
用于 BuiltInConverter.ToStringConverter
类型的 postId
>。
应用程序是 multiDexed 且未使用 ProGuard。会发生什么?
最佳答案
这是由 Instant Run 引起的。在我禁用 Retrofit 后它完美运行。
关于android - Retrofit 2 on Android 6 设置零路径参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48665511/