执行flutter run命令时报Null check operator used on a null value错误
错误说明
你遇到的是Flutter执行pub依赖拉取阶段的崩溃,完整错误堆栈如下:
Null check operator used on a null value package:pub/src/io.dart 1036:47 dartConfigDir.<fn> package:pub/src/io.dart 1046:2 dartConfigDir package:pub/src/io.dart dartConfigDir package:pub/src/system_cache.dart 92:33 new SystemCache package:pub/src/command.dart 51:39 PubCommand.cache package:pub/src/command.dart 65:70 PubCommand.entrypoint package:pub/src/command/get.dart 54:11
根因定位
该错误直接触发原因是pub工具读取Dart配置目录时获取到空值,触发了空检查运算符崩溃,常见触发场景如下:
- Windows系统
APPDATA环境变量、类Unix系统HOME环境变量未正确配置,导致pub无法定位默认配置目录 - 自定义的
PUB_CACHE环境变量指向的路径不存在或当前用户无读写权限 - Flutter/Dart SDK内部的pub工具文件损坏
- 本地pub缓存目录文件结构损坏、权限异常
解决步骤
- 第一步:检查环境变量配置
- Windows:打开系统环境变量面板,确认
APPDATA变量存在且指向有效路径,若配置了PUB_CACHE变量,确认其指向的路径存在且当前用户有权限读写 - macOS/Linux:终端执行
echo $HOME确认输出有效路径,若配置了PUB_CACHE,执行echo $PUB_CACHE确认路径合法
- Windows:打开系统环境变量面板,确认
- 第二步:清理重建缓存
依次执行以下命令:
全局清理pub缓存:dart pub cache clean
进入项目根目录执行:flutter cleanflutter pub get
完成后再执行flutter run验证问题是否解决 - 第三步:修复SDK异常
若上述操作无效,重新下载对应版本的Flutter SDK,替换本地现有SDK目录,排除SDK内部pub工具损坏的问题 - 第四步:修复权限异常(macOS/Linux适用)
若缓存目录权限不足,执行sudo chown -R $USER:$USER $HOME/.pub-cache修改缓存目录所有者为当前用户后重试
内容的提问来源于stack exchange,提问作者MUHAMMAD SHAHID RAFI C P
相关产品推荐
相关产品推荐

