执行./gradlew signingReport时遇Unsupported class file major version 66错误
问题描述
在Flutter项目的android目录下执行命令:
./gradlew signingReport
出现以下错误:
> Task :gradle:compileGroovy FAILED FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':gradle:compileGroovy'. > BUG! exception in phase 'semantic analysis' in source unit 'D:\study\flutter\Setup\src\flutter\packages\flutter_tools\gradle\src\main\groovy\app_plugin_loader.groovy' Unsupported class file major version 66 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 4s 1 actionable task: 1 executed
已尝试移除Firebase依赖、执行flutter clean和flutter pub get,问题仍未解决。
解决方案
错误原因
Class file major version 66对应Java 22,当前使用的Gradle版本不支持该Java版本,导致Groovy编译时出现兼容性问题。
解决步骤
降低Java版本到Gradle支持范围
查看当前Gradle版本支持的Java版本(Gradle 8.0+支持Java 17及以下,Gradle 8.5+支持Java 21),切换到兼容的JDK版本(推荐Java 17):- 项目级配置:在
android/gradle.properties中添加:org.gradle.java.home=/path/to/your/jdk17 - 系统级配置:调整环境变量
JAVA_HOME指向JDK 17/21的安装路径。
- 项目级配置:在
升级Gradle版本适配Java 22
若坚持使用Java 22,需将Gradle升级到支持它的版本(如Gradle 8.7+预览版):
修改android/gradle/wrapper/gradle-wrapper.properties中的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-rc-1-all.zip同步项目后重新执行命令。
检查Flutter SDK兼容性
确保Flutter SDK版本与Gradle、Java版本匹配,旧版Flutter可能不支持高版本依赖,可升级到稳定版:flutter upgrade
内容的提问来源于stack exchange,提问作者Abdullah Ghaith
相关产品推荐
相关产品推荐

