android - ViewModels + Hilt : cannot inline bytecode built with JVM target 1. 8 到正在使用 JVM 目标 1.6 构建的字节码

标签 android kotlin gradle android-viewmodel dagger-hilt

我在我的 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/

相关文章:

java - 房间内的光源出乎意料地起作用

android - 大多数二维码扫描器无法扫描 Android zxing 库生成的二维码

android - 在不启动服务的 WakefulBroadcastReceiver 中删除唤醒锁

groovy - 如何为新任务类型扩展 Gradle 任务的行为?

android-studio - Android Studio 中的 Gradle 同步错误,找不到方法 android()

php - 单条数据为null也无法获取到JsonResponse

java - 从 backstack 中删除不在 backstack 顶部的特定 fragment

types - 奇怪的平等编译错误 : (No method 'equals(Any?): Boolean' available)

android - Kotlin fragment NullPointerException

java - 执行gradle任务以测试,执行connectedAndroidTest,构建和执行GRADLE中的脚本