Flutter创建新项目时pub get失败(错误码69)求助
问题描述
The semaphore timeout period has expired. pub get failed command: "C:\src\flutter\bin\cache\dart-sdk\bin\dart __deprecated_pub --directory packages\flutter_tools get --example" pub env: { "FLUTTER_ROOT": "C:\src\flutter", "PUB_ENVIRONMENT": "flutter_cli:get", "PUB_CACHE": "C:\Users\ahmed\AppData\Local\Pub\Cache", } exit code: 69 #0 throwToolExit (package:flutter_tools/src/base/common.dart:10:3) #1 _DefaultPub._runWithStdioInherited (package:flutter_tools/src/dart/pub.dart:468:7) <asynchronous suspension> #2 _DefaultPub.get (package:flutter_tools/src/dart/pub.dart:346:5) <asynchronous suspension> #3 PubDependencies.update (package:flutter_tools/src/flutter_cache.dart:125:5) <asynchronous suspension> #4 Cache.updateAll (package:flutter_tools/src/cache.dart:677:9)
已尝试删除Flutter SDK缓存、执行flutter pub cache repair、重新下载Dart和Flutter SDK并配置环境变量,但flutter doctor仍报此错误。
解决方法
切换稳定网络环境
该超时错误大概率和网络不稳定有关,优先尝试切换到有线网络,或更换更稳定的网络后重新执行flutter doctor。配置国内镜像源(针对国内用户)
在命令行临时设置镜像:set FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn set PUB_HOSTED_URL=https://pub.flutter-io.cn也可以在系统环境变量中永久添加这两个变量,避免每次重复设置。
关闭杀毒软件/防火墙
部分杀毒软件或防火墙会拦截pub的网络请求或文件读写操作,导致超时。临时关闭后再执行相关命令,验证是否解决问题。彻底清理pub缓存并重新获取
执行以下命令删除pub缓存目录:rmdir /s /q C:\Users\ahmed\AppData\Local\Pub\Cache之后运行:
flutter pub get flutter doctor调整系统信号量超时设置
- 按下
Win+R输入regedit打开注册表编辑器 - 定位到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management - 右键新建DWORD(32位)值,命名为
GlobalMemoryStatusPollingInterval - 设置数值为
1000(十进制),重启电脑后再尝试执行Flutter命令
- 按下
以管理员身份运行终端
右键命令提示符或PowerShell,选择「以管理员身份运行」,再执行flutter doctor,避免因权限不足导致的文件操作超时。检查Flutter SDK目录权限
右键C:\src\flutter目录,选择「属性」-「安全」,确保当前用户拥有完全控制权限,若没有则添加对应权限后重试。
内容的提问来源于stack exchange,提问作者Ahmed Helmy
相关产品推荐
相关产品推荐

