无法安装get_cli,posix包与pwd.dart存在FFI字段可空性错误求助
解决get_cli安装时posix包FFI字段可空的构建错误
问题分析
安装get_cli时构建失败,报错指向posix-4.1.0包的pwd.dart、grp.dart等文件中,多个FFI相关字段被定义为可空类型,违反了Dart FFI对Struct/Union字段的非空要求。
解决方案
1. 正确指定兼容版本激活get_cli
之前指定版本的命令格式错误,正确命令格式为:
dart pub global activate get_cli <兼容版本号>
推荐尝试get_cli 1.8.6版本,该版本依赖的posix包无此问题,完整命令:
dart pub global activate get_cli 1.8.6
2. 全局重写posix包版本
若需使用最新版get_cli,可通过全局pubspec锁定兼容的posix版本:
- 找到全局pub缓存目录(Linux/macOS为
~/.pub-cache,Windows为%APPDATA%\Pub\Cache) - 在全局pubspec文件中添加依赖重写:
dependency_overrides: posix: 4.0.0
之后重新执行激活命令:
dart pub global activate get_cli
3. 升级Dart/Flutter到最新稳定版
部分旧版本Dart对FFI类型检查逻辑存在差异,升级到最新稳定版可能解决兼容性问题:
flutter upgrade dart pub upgrade --major-versions
4. 彻底清理缓存后重新激活
若之前缓存清理不彻底,执行以下命令重置后再激活:
dart pub cache clean dart pub global deactivate get_cli dart pub global activate get_cli 1.8.6
内容的提问来源于stack exchange,提问作者Taher
相关产品推荐
相关产品推荐

