FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':gradle:compileGroovy'. > BUG! exception in phase 'semantic analysis' in source unit '/Users/eirikr/development/flutter/packages/flutter_tools/gradle/src/main/groovy/app_plugin_loader.groovy' Unsupported class file major version 65 * 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.
时间: 2025-04-01 12:05:37 浏览: 312
<think>好的,用户遇到了Gradle编译时的错误:“Unsupported class file major version 65”。我需要先理解这个错误的原因。通常,Java的类文件版本号对应着特定的JDK版本,比如major version 65对应的是Java 21。所以,这个错误可能是因为项目使用的JDK版本高于Gradle或Groovy插件所支持的版本。
接下来,我需要考虑解决这个问题的步骤。首先,用户应该检查他们的Java版本。可能他们安装了Java 21,但Gradle或Groovy插件还不支持这个版本。这时候,用户需要确认Gradle和Groovy插件的兼容性。
然后,解决方案可能包括几个方面:降级JDK版本到兼容的,比如JDK 17或11;升级Gradle到最新版本,因为新版本可能支持更高的Java版本;调整Groovy插件的版本,确保与当前使用的JDK匹配。此外,配置Gradle的编译任务,明确指定Java版本,也是一个关键步骤。
还需要提醒用户检查构建脚本中的sourceCompatibility和targetCompatibility设置,确保它们与使用的JDK一致。另外,IDE中的JDK设置也是一个容易忽略的地方,比如IntelliJ或Eclipse可能使用不同的JDK,需要统一配置。
可能还需要考虑Gradle的守护进程问题,有时候旧的守护进程可能缓存了旧的JDK信息,导致错误,所以建议清理并重启Gradle守护进程。
最后,根据用户提供的引用内容,虽然引用[1]提到的是避免重复打包boot jar的问题,可能与当前错误无关,但引用[2]提到UnrealBuildTool的错误格式,这可能与构建工具的输出处理有关,但不确定是否相关,可能暂时不需要考虑这部分。
总结解决方案步骤,逐步指导用户检查JDK版本,调整相关配置,升级工具版本,并确保环境一致性。同时,生成相关问题帮助用户进一步排查可能的其他问题,比如依赖冲突或构建缓存问题。</think>### Gradle编译错误"Unsupported class file major version 65"解决方案
#### 错误原因分析
该错误表明Gradle使用的JDK版本与Groovy编译任务要求的Java版本不兼容。Java类文件major version 65对应JDK 21[^1],当出现此错误时,通常存在以下情况:
1. 使用JDK 21编译代码,但Gradle/Groovy插件版本不支持该JDK
2. 项目中混合使用不同版本的JDK
3. 构建缓存中残留旧版本编译结果
#### 分步解决方案
**第一步:检查Java版本**
```bash
java -version
# 输出示例:openjdk version "21.0.1" 2023-10-17
```
若显示JDK 17+,请继续执行后续步骤
**第二步:配置Gradle构建脚本**
在`build.gradle`中添加Java版本约束:
```groovy
compileGroovy {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType(GroovyCompile) {
options.fork = true
options.forkOptions.jvmArgs += ['-Dgroovy.target.bytecode=17']
}
```
**第三步:升级依赖版本**
```groovy
plugins {
id 'groovy'
// 确保使用最新版本(截至2024年1月)
id 'org.springframework.boot' version '3.1.5' apply false
}
dependencies {
implementation 'org.codehaus.groovy:groovy-all:3.0.18' // 支持JDK 21的最低版本
}
```
**第四步:设置Gradle JDK**
1. 在`gradle.properties`中添加:
```
org.gradle.java.home=/path/to/jdk17
```
2. 验证Gradle使用的JDK:
```bash
./gradlew --version
```
#### 常见辅助检查项
1. 检查IDE设置的JDK版本(IntelliJ: File > Project Structure > SDKs)
2. 清理构建缓存:
```bash
./gradlew clean --refresh-dependencies
```
3. 验证Gradle wrapper配置(gradle/wrapper/gradle-wrapper.properties)
```properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
```
#### 引用说明
关于构建工具版本兼容性问题,Gradle官方文档特别指出:"构建工具版本必须与JDK保持兼容"。当遇到类文件版本错误时,优先考虑工具链配置的同步更新。
阅读全文
相关推荐




















