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

VS Code运行Flutter应用遇Java版本不兼容问题求助

解决Flutter构建时Java版本不匹配问题(本地JVM非1.8但仍报错)

核心原因

你系统全局JVM是13,但Flutter/Gradle构建时实际调用的是其他路径的旧版JDK(比如Android Studio自带的JDK 1.8,或Gradle配置指定了旧路径),导致版本不匹配报错。


解决方案步骤

1. 定位Flutter实际使用的JDK

先执行命令确认Flutter构建时依赖的JDK版本:

flutter doctor -v

查看输出中Java version部分,比如:

Java version: OpenJDK Runtime Environment (build 1.8.0_292-release-1884-b01)

这会显示Flutter当前使用的JDK路径,明确问题根源。

2. 强制Gradle使用指定JDK

在项目的android/gradle.properties文件末尾添加以下配置,替换为你本地Java 11+的实际路径(Ubuntu可通过update-alternatives --list java查看所有可用JDK路径):

org.gradle.java.home=/usr/lib/jvm/java-13-openjdk-amd64

3. 配置VS Code的Java运行时

打开VS Code,按Ctrl+Shift+P唤起命令面板,输入Java: Configure Java Runtime:

  • 切换到「Projects」标签页
  • 找到你的Flutter项目,选择Java 11+版本作为项目运行时

4. 检查Android Studio的JDK配置(若已安装)

即使使用VS Code,Flutter可能会调用Android Studio内置的JDK:

  • 打开Android Studio,进入File > Project Structure > SDK Location
  • 修改「JDK location」为Java 11+的路径,同步项目后再回到VS Code重新构建

5. 修正系统环境变量

检查全局JAVA_HOME是否指向正确JDK:

  • 执行echo $JAVA_HOME,若输出为1.8路径,编辑~/.bashrc或~/.zshrc:
    export JAVA_HOME=/usr/lib/jvm/java-13-openjdk-amd64
    export PATH=$JAVA_HOME/bin:$PATH
    
  • 执行source ~/.bashrc(对应你的shell配置文件)使修改生效

关于Gradle版本的说明

你当前Gradle 7.4完全兼容Java 11+,无需修改版本。若要调整Gradle版本:

  • 插件版本在android/build.gradle的classpath 'com.android.tools.build:gradle:x.x.x'中修改
  • Gradle wrapper版本在android/gradle/wrapper/gradle-wrapper.properties的distributionUrl中修改

内容的提问来源于stack exchange,提问作者Arjun Malhotra

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:03:14