Flutter项目Android模拟器运行失败:Gradle与Java版本不兼容
Flutter构建失败:Unsupported class file major version 65 问题解析与解决办法
问题本质
Unsupported class file major version 65 错误核心是Java版本与Gradle版本不兼容:
- 类文件版本65对应Java 21,你当前项目使用的Gradle版本(如7.x及以下)不支持Java 21,这类旧版Gradle最高仅兼容到Java 17
- Gradle构建时需读取
cp_settings通用类缓存,但因Java版本超出支持范围,缓存无法正常加载,最终导致构建失败
有效解决方法
1. 确认本地Java版本
在终端执行命令,检查当前Java环境版本:
java -version
若输出显示为Java 21,需调整Gradle或Java版本以匹配兼容要求。
2. 匹配Gradle与Java版本
Gradle对Java版本有明确兼容规则:
- Gradle 8.0+ 支持Java 21
- Gradle 7.x 最高支持Java 17
- Gradle 6.x 最高支持Java 16
根据本地Java版本,选择对应兼容的Gradle版本进行调整。
3. 升级项目Gradle配置
调整Gradle插件版本
打开项目根目录下的android/build.gradle文件,修改dependencies块中的Gradle插件版本:
buildscript { dependencies { // 示例:升级到支持Java21的8.0.0版本 classpath 'com.android.tools.build:gradle:8.0.0' } }
调整Gradle分发版本
打开android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl为对应版本的Gradle:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-bin.zip
4. 配置项目编译Java版本
打开android/app/build.gradle文件,在android代码块中添加编译选项,指定与Gradle兼容的Java版本:
android { // ...其他原有配置 compileOptions { sourceCompatibility JavaVersion.VERSION_17 // 或VERSION_21(需Gradle 8.0+支持) targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' // 与上面版本保持一致 } }
5. 清理缓存并重新构建
执行以下步骤彻底清理旧缓存,避免干扰新构建:
- 终端运行
flutter clean - 删除项目
android目录下的.gradle文件夹 - 重新执行
flutter run
内容的提问来源于stack exchange,提问作者Rafeesh Fathima faishana
相关产品推荐
相关产品推荐

