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

升级Android Studio及Gradle插件后ButterKnife运行报错求助

解决JVM目标版本不匹配问题

报错核心是Java编译任务(compileDebugJavaWithJavac)的目标版本为1.8,而Kotlin编译任务(compileDebugKotlin)的目标版本为17,两者JVM目标兼容性必须保持一致,以下是两种解决思路:

方案1:统一设置为Java 17(适配新版Gradle,推荐)

在模块级的build.gradle(Groovy)或build.gradle.kts(Kotlin DSL)中添加配置,同步Java和Kotlin的JVM目标版本:

Groovy 语法:

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

    kotlinOptions {
        jvmTarget = '17'
    }
}

Kotlin DSL 语法:

android {
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = "17"
    }
}

方案2:统一降级为Java 1.8(适配旧依赖)

如果项目依赖(如旧版ButterKnife)暂不支持Java 17,可统一将JVM目标版本设为1.8:

Groovy 语法:

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

    kotlinOptions {
        jvmTarget = '1.8'
    }
}

Kotlin DSL 语法:

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

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

额外提示

  • ButterKnife已停止维护,最新版本仅兼容Java 8,若选择升级到Java 17,建议替换为ViewBinding等官方替代方案,避免后续出现更多兼容问题。
  • 修改配置后,执行File → Sync Project with Gradle Files同步项目,再重新运行即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 12:55:12