You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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. 清理缓存并重新构建

执行以下步骤彻底清理旧缓存,避免干扰新构建:

  1. 终端运行flutter clean
  2. 删除项目android目录下的.gradle文件夹
  3. 重新执行flutter run

内容的提问来源于stack exchange,提问作者Rafeesh Fathima faishana

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 19:39:53