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

macOS Catalina下运行flutter doctor报错找不到匹配版本1.8的JVM

解决Flutter报找不到JVM 1.8版本错误的方案

你遇到的报错是两个因素共同导致的:

  • 你使用的Flutter 2.2.3为较早的稳定版本,默认要求匹配Java 1.8版本,你安装的Java 16版本过高,旧版Flutter没有做兼容适配
  • 你使用的Android Studio 2020.3.1版本修改了内置捆绑JDK的存放路径,旧版Flutter无法识别到内置Java,才会主动检索系统Java版本触发报错

优先方案:无需安装Java 1.8,适配现有环境

步骤1:配置环境变量做版本兼容

打开终端对应配置文件:

  • 若你使用zsh终端,执行open ~/.zshrc
  • 若你使用bash终端,执行open ~/.bash_profile

在文件末尾添加两行配置:

export JAVA_HOME=$(/usr/libexec/java_home -v 16)
export JAVA_VERSION=1.8

保存关闭文件后,执行source ~/.zshrc(或对应source ~/.bash_profile)让配置生效。

步骤2:修复Android Studio内置Java识别问题

Android Studio 2020.3+版本将内置JDK存放在jbr目录,旧版Flutter仍会从原jre目录检索,执行以下命令创建软链接即可适配:

sudo mkdir -p /Applications/Android\ Studio.app/Contents/jre/jdk/Contents
sudo ln -s /Applications/Android\ Studio.app/Contents/jbr/Contents/Home /Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home

输入你的电脑开机密码确认执行即可。

步骤3:验证修复效果

重新执行flutter doctor,原有的"Unable to find any JVMs matching version 1.8"和"Unable to find bundled Java version"报错就会消失。

备选方案:安装Java 1.8版本共存

如果上述方案执行后仍有报错,你可以安装Java 1.8版本,macOS支持多版本Java共存无需删除现有Java 16:

  • 安装完成后重新执行flutter doctor,Flutter会自动匹配到Java 1.8版本,报错消失
  • 后续需要切换Java版本时,修改环境变量中JAVA_HOME的指向即可自由切换

补充说明

若你后续将Flutter升级到2.10及以上的稳定版本,框架已经原生支持Java 11+版本,无需做上述配置即可正常识别高版本Java。


内容的提问来源于stack exchange,提问作者Thilina Abhisheka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:42:03