错误描述
在设置Fragment和activity共享ViewModel数据时,设置如下代码:
private val viewModel by activityViewModels<MainPageViewModel>()
,然而在activityViewModels
处有一个错误提示:
Cannot inline bytecode built with JVM target 1.8 into bytecode that is being built with JVM target 1.6. Please specify proper ‘-jvm-target’ option
原因分析
根据错误提示可以看出:
当前工程是使用JVM1.6进行构建,而库中的方法使用了则使用了JVM1.8,不能够兼容报错。
解决办法
根据上述原因,解决办法是需要我们手动配置支持jvm1.8的特性。
在app
的build.gradle
中我们添加如下配置:
android{
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions{
jvmTarget = JavaVersion.VERSION_1_8
}
}
添加了上述代码后,重新编译工程,问题解决。
网友评论