PAYATHON 2026

Flutter Doctor 更新后仍检测到旧版 Android Studio

排障赵师傅

结论

flutter doctor 不会缓存旧版 Android Studio,也没有专门用于“重置检测结果”的命令。每次运行时,它都会重新查找能够识别的 Android Studio 安装目录。

目前旧目录仍然存在:

C:\Program Files\Android\Android Studio

该目录中还留有 Android Studio 4.2 的安装文件或目录结构,所以 Flutter 会把它识别为另一套安装。flutter config --android-studio-dir 只能指定首选目录,无法让 Flutter 忽略其他检测到的安装。

要从诊断结果中彻底移除旧版本,需要先卸载它,再清理残留的安装目录。仅修改注册表或重启系统通常无法解决。

为什么指定新路径后仍会显示旧版本

以下配置已经生效:

flutter config --android-studio-dir="C:\Program Files\Android\Android Studio1"

诊断结果也确认了这一点:

Android Studio at C:\Program Files\Android\Android Studio1
Java binary at: C:\Program Files\Android\Android Studio1\jbr\bin\java

Flutter 当前使用的是新版 Android Studio 自带的 JDK。

flutter doctor 还会检查其他可能的安装位置。由于旧目录中仍有可用于识别版本的信息,结果中也会出现:

Android Studio at C:\Program Files\Android\Android Studio
Android Studio (version 4.2)

Unable to determine bundled Java version 表示旧安装中的 JDK 已经缺失、损坏或无法识别,并不表示 Flutter 正在使用这个 JDK。

处理步骤

1. 卸载旧版 Android Studio

打开 Windows 的“应用和功能”或“程序和功能”,卸载 Android Studio 4.2。卸载前,请关闭 Android Studio、Gradle 和模拟器相关进程。

确认卸载的是以下旧目录:

C:\Program Files\Android\Android Studio

不要误删新版目录:

C:\Program Files\Android\Android Studio1

2. 删除旧安装的残留目录

卸载后,检查旧目录是否仍然存在:

Test-Path "C:\Program Files\Android\Android Studio"

如果返回 True,先确认目录中没有项目、SDK 或需要保留的配置,再以管理员权限删除。也可以先将它移动到其他位置进行验证,例如:

Move-Item `
  "C:\Program Files\Android\Android Studio" `
  "C:\Android-Studio-4.2-backup"

随后重新运行:

flutter doctor -v

如果诊断结果中不再显示旧版本,就能确认它来自这个残留目录。确定备份内容不再需要后,再自行删除。

Android 项目通常不会存放在 Android Studio 的安装目录中,但操作前仍需检查,以免误删个人文件。

3. 仍然出现时检查残留注册表项

如果旧目录已经不存在,flutter doctor 仍然列出旧版本,可以查询以下注册表位置:

reg query "HKLM\SOFTWARE\Android Studio" /s
reg query "HKLM\SOFTWARE\WOW6432Node\Android Studio" /s
reg query "HKCU\SOFTWARE\Android Studio" /s
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s /f "Android Studio"
reg query "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" /s /f "Android Studio"

检查其中是否还有值指向:

C:\Program Files\Android\Android Studio

删除注册表项之前应先导出备份,并且只处理能够确认属于旧版 Android Studio 的条目。不同安装方式使用的注册表路径可能不同,不要批量删除名称相似的项目。

4. 验证最终配置

检查 Flutter 保存的新目录:

flutter config --list

再重新运行诊断:

flutter doctor -v

正常情况下,结果中只会保留新版安装:

Android Studio at C:\Program Files\Android\Android Studio1

不需要执行的操作

无需删除或重新安装 Flutter SDK,也不用清理所谓的 flutter doctor 缓存。当前输出已经表明,新版 Android Studio 及其自带的 JDK 可以正常使用。

也无需专门执行:

flutter config --jdk-dir="..."

只有确实需要使用单独安装的 JDK 时,才需要设置这个选项。指定 JDK 路径并不能阻止 Flutter 检测旧版 Android Studio。

诊断结果中的 Visual Studio 错误与 Android Studio 无关。如果不开发 Windows 桌面应用,可以暂时忽略。如果需要构建 Windows 桌面应用,应另行安装 Visual Studio 的 Desktop development with C++ 工作负载。

备注:内容仅供参考。