Ubuntu20.04通过Snap安装Flutter后执行flutter doctor报错如何解决

首次运行flutter doctor时网络中断,导致Flutter初始化所需的版本元数据下载不完整,snap安装的Flutter关联的本地缓存配置文件损坏,后续解析版本哈希值的jq命令调用参数为空,触发语法错误,连带后续下载、解压流程全部失败。之前卸载时没有清理残留的损坏缓存文件,所以重装后报错仍然存在。
第一步:彻底卸载snap版Flutter并清除snap端缓存
执行命令:sudo snap remove --purge flutter
添加--purge参数会同步删除snap服务存储的Flutter相关配置数据,避免残留损坏文件。第二步:删除用户目录下的Flutter缓存文件
执行命令:rm -rf ~/snap/flutter ~/.flutter
这部分用户侧缓存不会随snap卸载自动删除,必须手动清理。第三步:重新安装Flutter snap包
执行命令:sudo snap install flutter --classic第四步(强烈建议):配置国内Flutter镜像源
避免再次因跨境网络不稳定导致初始化失败,将以下两行环境变量添加到你的shell配置文件(默认Bash对应~/.bashrc,Zsh对应~/.zshrc):
export PUB_HOSTED_URL=https://pub.flutter-io.cn export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn
添加完成后执行对应命令让环境变量生效:source ~/.bashrc
(如果使用Zsh则替换为source ~/.zshrc)
- 第五步:重新执行初始化
执行命令:flutter doctor
等待初始化完成即可正常使用。
如果执行过程中提示权限不足,可先执行一次sudo flutter doctor完成初始化流程,后续普通用户即可正常调用Flutter命令。
内容的提问来源于stack exchange,提问作者Moein Salimi

