Windows环境运行Flutter遇问题:执行flutter doctor时出现TLS错误
解决Windows下Flutter Doctor的TLS/pub upgrade错误
我之前帮好几个开发者解决过这个问题,大概率是网络环境限制或者Dart的证书配置出了问题,试试下面这些实用方案:
检查并配置代理(如果需要)
如果你所在的网络需要代理才能访问外网,得给Flutter和Dart正确配置代理信息。打开CMD或PowerShell,执行以下命令:set http_proxy=http://你的代理地址:端口号 set https_proxy=https://你的代理地址:端口号要是代理需要验证,格式改成
http://用户名:密码@代理地址:端口号就行。设置完重新跑flutter doctor试试。禁用不必要的系统代理
有时候系统自动开启的代理可能有问题,或者你当前在不需要代理的网络环境里。可以打开Windows设置→网络和Internet→代理,关掉「自动检测设置」和「使用代理服务器」,重启命令行工具后再尝试。手动指定系统根证书
部分Windows环境下Dart的根证书不全,导致TLS握手失败。可以手动指定系统自带的证书文件:- 找到Flutter安装目录下的
bin\cache\dart-sdk\bin文件夹 - 切换到该目录的命令行窗口,执行:
(如果找不到这个路径,可以自行查找系统根证书的pem格式文件)pub upgrade --verbose --root-certs-file="C:\Windows\System32\certificates\root\ca-bundle.pem"
- 找到Flutter安装目录下的
重置Flutter缓存
缓存文件损坏也可能引发这类问题,执行下面的命令重置缓存:flutter clean flutter pub cache repair flutter doctor切换国内Flutter镜像源
要是你在国内网络环境,直接访问pub.dartlang.org容易出问题,切换到国内镜像能解决大部分网络相关的问题:
在命令行执行:set PUB_HOSTED_URL=https://pub.flutter-io.cn set FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn想永久生效的话,右键「此电脑」→属性→高级系统设置→环境变量,在系统变量里添加这两个变量和对应值,重启命令行后就能用了。
小提醒:如果以上方法都没效果,可以暂时关闭杀毒软件或防火墙,有时候它们会拦截Flutter的网络请求。
内容的提问来源于stack exchange,提问作者vinSan
相关产品推荐
相关产品推荐

