错误 Cannot inline bytecode built

2021-10-22  本文已影响0人  静水红阳

错误描述

在设置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的特性。
appbuild.gradle中我们添加如下配置:

android{
    ...
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    kotlinOptions{
        jvmTarget = JavaVersion.VERSION_1_8
    }
}

添加了上述代码后,重新编译工程,问题解决。

上一篇下一篇

猜你喜欢

热点阅读