解决 Flutter 启动锁:Waiting for another flutter command to release the startup lock

在 Windows 上执行 flutter devicesflutter runflutter doctor 时,如果控制台一直卡在下面这行:

Waiting for another flutter command to release the startup lock...

通常说明 Flutter 工具链留下了一个启动锁,新的命令在等待它释放。

问题表现

  • 任意 flutter 命令长时间无响应;
  • 即使按 Ctrl + C 退出后,下一次执行仍然卡住;
  • 多见于上一次 Flutter 命令异常中断(IDE 关闭、终端强杀、系统休眠后恢复等)。

根因说明

Flutter 在启动命令时会在 SDK 缓存目录创建锁文件,防止多个 Flutter 进程并发改写缓存。
当进程异常退出时,锁文件可能残留,后续命令就会持续等待。

本次问题对应的目录是:

E:\Android\flutter\bin\cache

需要删除的文件是:

lockfile

修复步骤(Windows)

1) 关闭正在运行的 Flutter 命令

先在终端里 Ctrl + C 结束当前卡住的命令,必要时关闭 IDE 终端窗口。

2) 删除锁文件

进入目录并删除:

cd E:\Android\flutter\bin\cache
del lockfile

或者直接一行命令删除:

del E:\Android\flutter\bin\cache\lockfile

也可以用资源管理器直接删除 E:\Android\flutter\bin\cache\lockfile

3) 重新验证

flutter doctor -v
flutter devices

如果命令正常返回,说明锁已解除。

建议与补充

  • 尽量避免同时开多个终端并发执行 Flutter 命令;
  • 关闭电脑前,确认 Flutter 构建任务已完成;
  • 如果问题反复出现,可先检查是否有僵尸 dart.exe 进程,再删除 lockfile

一句话结论

遇到 Waiting for another flutter command to release the startup lock...,到 E:\Android\flutter\bin\cache 删除 lockfile,通常就能恢复 Flutter 命令执行。