我在我的 Android 应用程序 (Kotlin) 中使用 View 模型和 Hilt。但是我在初始化时遇到了问题 查看模型:
private val myViewModel: MyViewModel by viewModels()
应用程序编译正常,我可以运行它,但 Android Studio 指示错误,当我将光标移到它上面时,我收到以下消息:
无法将使用 JVM 目标 1.8 构建的字节码内联到使用 JVM 目标 1.6 构建的字节码中。请指定正确的“-jvm-target”
在我的构建 gradle 中,我为编译选项指定了 Java 1.8(甚至对于 Kotlin)。
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8
}
这是我的 View 模型和 fragment 的注释
@HiltViewModel
class MyViewModel: ViewModel()
和
@AndroidEntryPoint
class MyFragment: Fragment()
我的一些依赖:
'androidx.core:core-ktx:1.5.0'
'androidx.appcompat:appcompat:1.3.0'
'com.google.dagger:hilt-android:2.35'
'com.google.dagger:hilt-android-compiler:2.35'
"androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
有没有人遇到过类似的问题?感谢您的帮助!
最佳答案
我有同样的问题,除了降低 Kotlin 版本外没有任何帮助。我将 1.5.10 替换为 1.5.31,错误消失了。 我在 build.gradle 文件中的更正如下:
构建脚本{ ext.kotlin_version = '1.5.10'
...
依赖关系{ 类路径“org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version”
新的 Kotlin 版本似乎有问题。
关于android - ViewModels + Hilt : cannot inline bytecode built with JVM target 1. 8 到正在使用 JVM 目标 1.6 构建的字节码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68455475/