You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:解决继承含@JvmDefault成员接口需-Xjvm-default选项错误

解决“继承含有‘@JvmDefault’成员的接口仅在使用-Xjvm-default选项时才被允许”错误

这个错误是因为你的代码继承了带有@JvmDefault默认方法的Kotlin接口,编译器需要明确参数来处理这类方法,按以下步骤配置即可解决:

1. 配置Module级Gradle文件

根据你使用的Gradle语法,添加对应的编译参数:

Groovy语法(build.gradle)

android {
    // 保留原有其他配置
    kotlinOptions {
        freeCompilerArgs += ["-Xjvm-default=all"]
    }
}

Kotlin DSL语法(build.gradle.kts)

android {
    // 保留原有其他配置
    kotlinOptions {
        freeCompilerArgs += "-Xjvm-default=all"
    }
}

2. 可选参数说明

-Xjvm-default有几个可选值,可根据项目情况选择:

  • all:为所有接口的默认方法生成JVM默认实现,适配大部分Jetpack库场景(对应你截图里的Room DAO、ViewModel相关接口)
  • all-compatibility:生成兼容旧版字节码的实现,适合需要兼容低版本Kotlin的项目
  • enable:仅为标注了@JvmDefault的方法生成默认实现,较少使用

额外提示

  • 确保项目使用的Kotlin版本在1.4.0以上,该版本后@JvmDefault的支持更稳定
  • 你截图中的DAO类(Room)、ViewModel相关类大概率依赖了带@JvmDefault的Jetpack接口,添加上述配置即可解决编译报错

内容的提问来源于stack exchange,提问作者hds

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:31:09