Flutter项目构建失败:无法打开cp_settings类缓存及JDK兼容问题
Flutter项目构建失败:Unsupported class file major version 65
报错信息
FAILURE: Build failed with an exception.
- 问题原因:无法打开配置文件
D:\Projects\Flutter_Projects\android\settings.gradle对应的cp_settings通用类缓存(缓存路径:C:\Users\abc.d.gradle\caches\7.6.3\scripts\89h1b0pgkuoa5c28iqf1kcknq) - 核心异常:BUG! 源单元
_BuildScript_的语义分析阶段抛出异常:Unsupported class file major version 65 - 官方建议操作:
- 执行构建时添加
--stacktrace参数获取堆栈跟踪 - 使用
--info或--debug参数查看详细日志 - 用
--scan参数生成完整分析报告
- 执行构建时添加
- 构建耗时:6秒后失败
环境配置
- Flutter SDK: 3.22.2
- Android Studio: 2024.2
- JDK: 17.0.7
- Gradle: 7.6.4
问题分析
Class file major version 65对应Java 21,但Gradle 7.6.4的最高兼容版本为Java 17。尽管本地JDK为17.0.7,Android Studio 2024.2默认配置可能引入了Java 21相关的编译逻辑或依赖,导致Gradle无法解析高版本类文件。
解决方案
1. 修正Android Studio的JDK配置
- 打开Android Studio,进入
File > Project Structure > SDK Location - 确保
JDK location指向本地JDK 17的安装路径,而非Java 21
2. 强制Gradle使用指定JDK
在项目的android/gradle.properties文件中添加以下配置:
org.gradle.java.home=你的JDK17绝对路径(例如:C:\\Program Files\\Java\\jdk-17.0.7)
3. 清理Gradle缓存
删除缓存目录C:\Users\abc.d.gradle\caches\7.6.3,重新执行flutter build命令
4. 升级Gradle版本(可选)
若上述方法无效,将Gradle升级至8.0及以上版本(Gradle 8.0+原生支持Java 21),同时更新android/build.gradle中的Gradle插件版本以适配。
内容的提问来源于stack exchange,提问作者Chintan Gabani
相关产品推荐
相关产品推荐

