运行Flutter应用报Unsupported class file major version 61错误如何解决
报错根因
错误码Unsupported class file major version 61中版本61对应JDK 17,该报错本质是你的Flutter项目Android侧使用的Gradle版本与本地安装的JDK版本不兼容。flutter doctor仅会检测基础依赖是否存在,不会校验项目内部Gradle和JDK的版本匹配关系,因此会出现flutter doctor检测正常但项目运行失败的情况。
最终可行解决方案
二选一即可,不要混合操作:
方案1:保留JDK 17,升级匹配对应Gradle版本
- 打开项目下
android/gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl配置的Gradle版本为7.3及以上,示例:distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-all.zip - 打开项目下
android/build.gradle文件,修改buildscript依赖块内的Android Gradle插件版本,需和上一步的Gradle版本严格匹配,Gradle 7.4对应的插件版本为7.1.3,示例:buildscript { dependencies { classpath 'com.android.tools.build:gradle:7.1.3' } } - 删除你之前在
gradle.properties中添加的所有适配JDK 17的自定义配置 - 项目根目录执行命令清理缓存:
flutter clean flutter pub get - 重新启动应用即可
方案2:降级JDK到兼容性最好的JDK 11
- 替换本地环境的JDK 17为JDK 11,修改环境变量后执行
java -version确认当前生效版本为11.x - 把你之前修改的所有Gradle相关配置(包括gradle-wrapper版本、gradle插件版本、gradle.properties自定义配置)全部恢复到项目初始状态
- 项目根目录执行命令清理缓存:
flutter clean flutter pub get - 重新启动应用即可
注意:必须保证JDK版本和Gradle版本严格匹配,单独修改其中任意一项都会触发新的报错。
内容的提问来源于stack exchange,提问作者OKKO
相关产品推荐
相关产品推荐

