二进制兼容警告

如果你使用新版本的Kotlin编译器,并且使用老版本标准库或老版本反射库,这说明你的项目被错误配置了。为了避免这些不期望的问题在编译或运行时出现,我们建议升级到最新版本或显示指定API版本或语言版本参数。否者编译器会检测到一些错误并报告一个警告。

比如。如果老版本是1.0,新版本是1.1,你可以遵守以下的警告:

在classpath中的运行时JAR文件有版本1.0,比API版本1.1版本低。考虑使用运行时版本1.1或者显示的指定-api-version 1.0。

这意味着你可以使用Kotlin编译器1.1来解决标准库或反射库的1.0版本。这可以通过不同的方式实现:

  • 如果你打算使用标准库API 1.1版本,或依赖这些API的语言特性,你需要更新你的依赖至版本1.1。
  • 如果你想保持你的代码与标准库1.0兼容,你可以使用-api-version 1.0。
  • 如果你刚更新了Kotlin 1.1但是不使用新的语言特性,你可以使用-language-version 1.0,这将限制所有的1.1版本的API和语言特性。
在classpath中的JAR文件应该使用一样的版本。这些文件在classpath中会被找到:
    kotlin-reflect.jar (version 1.0)
    kotlin-stdlib.jar (version 1.1)
考略到提供显示的kotlin-reflect 1.1依赖来避免奇怪的错误。
在classpath中的一些运行时JAR文件有一个不兼容的版本,请考虑删除它们。

这意味着你可以依赖不同版本的库,比如,1.1标准库和1.0反射库。为了避免这些运行时的微妙错误,我们建议你使用一样版本的Kotlin库。在这种情况下,考略显示的指定1.1反射库版本依赖。

一些在classpath中的JAR文件必须绑定在Kotlin中的运行时库中。
这可能会引起麻烦来调试问题,如果在Kotlin运行库有不同的版本,建议删除这样的库。

这意味着classpath中的库不依赖Kotlin标准库,比如Gradle/Maven依赖。这样的库可能引起问题因为标准构建工具没有考虑其作为Kotlin标准库的实例,因此它不受制于依赖版本解决机制,你可以在classpath中得到相同库的多个版本。考虑联系这些库的作者,并且建议使用Gradle/Maven的依赖作为替换。

results matching ""

    No results matching ""