Android 6 上的 Retrofit 2 设置零路径参数

she*_*lll 5 android kotlin retrofit2

我正在使用 Retrofit 2 库版本 2.3.0,突然间它开始用零代替实际数字替换整数路径参数。

我正在使用 Kotlin (1.2.21) 并且我有一个类似的方法:

@GET("posts/{postId}")
fun getPosts(@Path("postId") postId: Long): Single<Post>
Run Code Online (Sandbox Code Playgroud)

这可以正常工作,但是现在当我在 Android 6(设备和模拟器)上运行我的应用程序时,postId路径参数始终为零,即被posts/0调用。Android 7 和 8 很好。Retrofit 和 OkHttp 版本没有变化,界面也没有变化。

我查看了构建的请求,OkHttpCall内部有args一个类型Long为 0 的值的数组。这仅在 Android 6 上,其他人在那里有正确的值。该ServiceMethod在界面的正确URL集,它有一个ParameterHandlerpostId类型BuiltInConverter.ToStringConverter

应用程序是 multiDexed 并且不使用 ProGuard。会发生什么?

she*_*lll 4

这是由即时运行引起的。禁用后,Retrofit 工作正常。