升级Kotlin版本后Flutter Android应用启动即崩溃问题排查
问题根源
Unsupported class file major version 65 是核心错误:你当前使用的Java 21对应的class文件版本是65,但Gradle 7.6.1最高仅支持Java 17(class版本61),导致Groovy编译无法处理高版本class文件,直接引发构建失败。
解决思路(二选一即可)
方案一:降级Java到17(适配现有Gradle版本,更稳妥)
- 卸载当前Java 21,安装OpenJDK 17
brew uninstall openjdk@21 brew install openjdk@17 - 配置环境变量让项目使用Java 17
- 临时生效:终端执行以下命令后再运行构建
export JAVA_HOME=/usr/local/opt/openjdk@17 flutter clean flutter pub get flutter run - 永久生效:编辑
~/.zshrc或~/.bash_profile,添加以下内容后执行source ~/.zshrcexport JAVA_HOME=/usr/local/opt/openjdk@17
- 临时生效:终端执行以下命令后再运行构建
- 同步Android Studio配置:打开Android Studio → 偏好设置 → Build, Execution, Deployment → Build Tools → Gradle,将Gradle JDK设置为OpenJDK 17
方案二:升级Gradle到支持Java 21的版本(需同步升级插件)
Gradle 8.0及以上支持Java 21,按以下步骤调整配置:
- 修改
gradle-wrapper.properties的Gradle版本distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip - 更新
settings.gradle中的Android Gradle Plugin(AGP)版本(Gradle 8.5需搭配AGP 8.0+)id "com.android.application" version '8.2.2' apply false - (可选)更新应用级
build.gradle的Java版本配置,匹配Java 21compileOptions { sourceCompatibility JavaVersion.VERSION_21 targetCompatibility JavaVersion.VERSION_21 } kotlinOptions { jvmTarget = '21' } - 执行清理并重新构建
flutter clean flutter pub get flutter run
补充检查
- 确认项目
local.properties中无硬编码的旧JDK路径 - 彻底删除模拟器/真机上的旧应用后再重新安装运行
内容的提问来源于stack exchange,提问作者George K
相关产品推荐
相关产品推荐

