Flutter依赖包空安全改造遇死循环:需pub get却依赖空安全支持
解决Flutter空安全依赖死循环的方法
1. 临时绕过空安全校验,先获取基础依赖
执行命令flutter pub get --no-sound-null-safety,这个命令会跳过空安全的强制检查,让你能正常拉取依赖、打开项目,进而修改key_value_store_flutter的代码。
2. 改造key_value_store_flutter适配空安全
- 打开该包的
pubspec.yaml,把SDK版本改成支持空安全的范围,比如:environment: sdk: '>=2.12.0 <3.0.0' - 给变量、函数补全空安全修饰符(
?、!、required等),修复所有空安全相关的编译报错。 - 进入该包的目录,执行
dart pub get,确保它自身的依赖也适配空安全(如果有的话)。
3. 处理key_value_store_web的兼容问题
如果这个第三方包还没有官方空安全版本,有两种解决思路:
- 找该包的空安全分支或社区fork版本,在项目
pubspec.yaml里指定依赖,比如:dependencies: key_value_store_web: git: url: https://github.com/xxx/key_value_store_web.git ref: null-safety-branch - 自己fork这个仓库,改造为支持空安全后,再依赖自己的fork版本。
4. 恢复正常空安全模式
所有包的空安全改造完成后,回到项目根目录执行flutter pub get,此时依赖应该能正常解析了。
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

