生成Android SHA1时遇':gradle:compileGroovy'执行失败问题求助
解决执行
./gradlew signingReport时的Unsupported class file major version 65错误 执行./gradlew signingReport生成Android SHA1签名报告时,卡在compileGroovy环节,最终构建失败,核心报错信息:
Execution failed for task ':gradle:compileGroovy'.
BUG! exception in phase 'semantic analysis' in source unit '/Users/samin/Documents/flutterdev/sdk/flutter/packages/flutter_tools/gradle/src/main/groovy/flutter.groovy' Unsupported class file major version 65
错误原因
Class文件主版本号65对应Java 21,但当前使用的Groovy编译器或ASM库版本不支持Java 21,Gradle、Groovy与Java版本不兼容,导致Groovy代码编译失败。
解决方案
- 切换到兼容的Java版本:将JDK换成Java 17或更低版本(Java 17是Flutter官方推荐的稳定版本)。
- 终端临时生效:执行
export JAVA_HOME=/path/to/your/jdk17(macOS/Linux);Windows则在命令行设置set JAVA_HOME=C:\path\to\jdk17。 - 永久生效:修改
~/.bashrc或~/.zshrc(macOS/Linux),添加export JAVA_HOME=/path/to/your/jdk17;Windows在系统环境变量中设置JAVA_HOME指向JDK 17路径。
- 终端临时生效:执行
- 升级Gradle版本:如果要继续用Java 21,需将Gradle升级到8.0及以上版本(该版本开始支持Java 21)。修改项目根目录下
gradle/wrapper/gradle-wrapper.properties的distributionUrl:distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip - 更新Flutter SDK:执行
flutter upgrade升级到最新稳定版,新版本会修复更多版本兼容性问题,适配更高版本的Java和Gradle。
内容的提问来源于stack exchange,提问作者danish
相关产品推荐
相关产品推荐

