OkHttp 4.0.0是否需要JVM target 1.8?

Joz*_*zua 6 android jvm kotlin okhttp

OkHttp 4.0.0是否故意与jvm target 1.6不兼容?从OkHttp 3.12.0升级到4.0.0我遇到以下构建失败。

无法将使用JVM target 1.8构建的字节码内联到使用JVM target 1.6构建的字节码中。请指定正确的“ -jvm-target”选项

在进一步检查中,我发现根本原因是Interceptor具有静态方法的接口(伴随对象内部的函数)。该升级指南中没有提到这种落后的不兼容性导致我相信这是无意的。

Joz*_*zua 13

找到了带有一些解释的博客文章。从OkHttp 3.13.1开始,需要JVM target 1.8。建议的更改是:

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

我发现它仍然失败。最后再添加一条指令即可修复构建。

kotlinOptions {
    jvmTarget = '1.8'
}
Run Code Online (Sandbox Code Playgroud)