Flutter 3.0运行flutter pub get报错errno=123如何解决
问题描述
执行flutter pub get时出现以下报错:
- 无法打开文件,路径为
C:\Users\jorge.ribeiro\AppData\Local\Pub\Cache_temp\dir9616652b\test\fixtures\invalid\n_structure_<>.json,系统提示:OS Error: 文件名、目录名或卷标语法不正确,error = 123 - 在ipartyofficial项目中执行命令失败,返回:
pub get failed (66; , errno = 123)
本地flutter doctor检测结果如下,所有检测项均正常:
Doctor summary (to see all details, run flutter doctor -v): [√] Flutter (Channel main, 3.1.0-0.0.pre.1035, on Microsoft Windows [版本 10.0.19044.1645], locale pt-BR) [√] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1) [√] Chrome - develop for the web [√] Android Studio (version 2021.2) [√] VS Code (version 1.67.2) [√] Connected device (3 available) [√] HTTP Host Availability
故障原因
Windows系统禁止文件名包含<、>这类特殊字符,Pub在拉取依赖写入临时缓存目录时,遇到带违规命名的文件就会触发123系统错误。当前使用的是main渠道的Flutter预发布版本,本身存在未修复的缓存处理兼容问题,会提升这类故障的出现概率。
解决步骤
按顺序执行以下操作即可修复:
- 关闭所有打开的Flutter项目、IDE、终端窗口,避免文件被占用无法操作。
- 手动删除整个Pub缓存目录:
C:\Users\jorge.ribeiro\AppData\Local\Pub\Cache,不要留残留文件。 - 执行命令切换到Flutter稳定渠道,替换掉当前的预发布版本:
flutter channel stable flutter upgrade
- 进入项目根目录,删除
pubspec.lock文件,重新执行flutter pub get。
如果执行完上述步骤仍报错,检查项目依赖的第三方包版本,部分包的测试资源文件存在Windows不支持的特殊字符命名,可通过dependency_overrides将对应包替换为无该问题的历史稳定版本即可。
内容的提问来源于stack exchange,提问作者user14160660
相关产品推荐
相关产品推荐

