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

升级Java 17后Flutter项目Gradle构建失败:Unsupported class file major version 65

Flutter项目升级Java17后assembleDebug构建失败(Unsupported class file major version 65)

问题背景

升级Java 17并更新Android Studio至Ladybug版本后,执行assembleDebug构建时失败,核心报错:

FAILURE: Build failed with an exception.

  • 出错原因:无法为设置文件'.../android/settings.gradle'打开cp_settings通用类缓存。
    提示:BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 65

已尝试以下操作但未解决:

  • 将gradle-wrapper.properties中的Gradle版本更新至7.3.3(支持Java17)
  • 确认Java17已安装且JAVA_HOME路径正确,Flutter doctor验证通过
  • 执行flutter clean并重新构建

当前build.gradle配置:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_17
    targetCompatibility JavaVersion.VERSION_17
}

kotlinOptions {
    jvmTarget = '17'
}    

解决方案

1. 修正Android Studio的JDK配置

Android Studio Ladybug默认内置Java21,这是版本不匹配的核心原因:

  • 打开Android Studio,依次进入File > Project Structure > SDK Location
  • 取消勾选Use embedded JDK (recommended),手动选择Java17的安装路径
  • 切换到Modules标签页,确认每个模块的JDK版本均设置为17

2. 强制Gradle使用指定JDK

在项目根目录的gradle.properties文件中添加以下配置,锁定Gradle使用的JDK版本:

org.gradle.java.home=/path/to/your/java17

替换为实际的Java17路径,例如:

  • Windows:C:\Program Files\Java\jdk-17.0.9
  • Mac:/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
  • Linux:/usr/lib/jvm/java-17-openjdk-amd64

3. 验证Gradle与AGP版本匹配

Gradle 7.3.3需要搭配适配的Android Gradle Plugin(AGP)版本,在项目根级build.gradle中确认:

buildscript {
    ext.kotlin_version = '1.7.20' // Kotlin版本需支持Java17
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.3.1' // 与Gradle7.3.3适配的AGP版本
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

4. 彻底清理缓存

除了flutter clean,还需手动删除Gradle全局缓存:

  • Windows:删除%USERPROFILE%\.gradle\caches目录
  • Mac/Linux:删除~/.gradle/caches目录
    清理完成后执行flutter pub get,再重新运行./gradlew assembleDebug

问题说明

报错中的major version 65对应Java21的类文件版本,说明构建脚本编译时使用了Java21而非你配置的Java17。Android Studio Ladybug升级后默认切换到内置Java21,导致Gradle构建环境与项目配置的Java17不兼容,通过锁定JDK版本即可解决。

内容的提问来源于stack exchange,提问作者Convert.ToInt32

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:27:41