Flutter项目Gradle不兼容错误及缓存、Java版本问题修复求助
兄弟,我帮你拆解下你遇到的这个Flutter Android构建失败的问题,核心就是Gradle缓存损坏+Java版本和Gradle不兼容导致的,先给你还原下你碰到的错误细节,再给你一步步的修复方案:
你遇到的具体错误信息
- 构建失败提示:
FAILURE: Build failed with an exception. - 核心问题1:无法打开Settings文件的通用类缓存
缓存关联的Settings文件路径:D:\Emma \viay_v1.0\Flutter\ Merchant App\Files\android\settings.gradle
出错的缓存目录:C:\Users\MR.MAHMOUD.gradle\caches\7.5\scripts\2qhgkuqjdlphqgvg4z8mj7eiz - 最关键的报错提示:
BUG! exception in phase 'semantic analysis' in source unit 'BuildScript' Unsupported class file major version 65
问题根源解释
这个Unsupported class file major version 65是关键——版本65对应的是Java 21,而你当前用的Gradle 7.5最高只支持到Java 17,两者版本不兼容直接触发了这个错误;再加上Gradle缓存可能已经损坏,雪上加霜导致构建直接失败。
一步步修复方案
第一步:清理损坏的Gradle缓存
直接找到报错里的缓存目录C:\Users\MR.MAHMOUD.gradle\caches\7.5\scripts\2qhgkuqjdlphqgvg4z8mj7eiz删掉,嫌麻烦的话也可以直接清空整个C:\Users\MR.MAHMOUD.gradle\caches文件夹,彻底清除损坏的缓存文件。第二步:匹配Java版本和Gradle版本
- 先把你的JDK版本降到17及以下(推荐用Java 17,和Gradle 7.5兼容性最好),别用Java 21了,Gradle 7.5还没适配它。
- 配置项目的Java版本,打开Flutter项目里
android/app/build.gradle文件,修改或添加下面的配置:android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } } - 检查系统环境变量
JAVA_HOME,确保它指向的是你安装的JDK 17目录,别让Gradle误用到高版本Java。
第三步:验证Gradle配置(可选)
如果你不想降级Java,也可以尝试升级Gradle到支持Java 21的版本(比如Gradle 8.0及以上),但要注意先确认你的Flutter版本是否兼容这个Gradle版本,避免引入新的兼容问题。
备注:内容来源于stack exchange,提问作者Minda Cash

