0

每当我在我的项目中使用 Fragmet KTX,特别是使用属性委托 ( viewModels& activityViewModels) 绑定 viewModel 时,我都会遇到编译器错误:

Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6

所以要解决这个问题,我必须将jvmTarget 设置为1.8build.gradle

我不明白的是为什么 jvmTarget 默认设置为 1.6 并且更改它会导致任何兼容性问题?

4

1 回答 1

0

主要问题是显而易见的:为 1.8 目标编译的类不能在不支持它的平台上运行。特别是,由于 Android 在很长一段时间内都不支持*所有 1.8,这就是 Kotlin 允许较低目标版本的主要原因。

(*我必须承认我不知道这件事的细节,快速的网络搜索并没有显示出任何确定的信息。如果你能阐明这一点,请发表评论!)

如果您知道要运行的所有平台都是 1.8 或更高版本,那么没有理由不将其设置为您的目标。

于 2020-08-17T19:32:22.273 回答