运行Flutter项目遇riverpod相关sound null safety报错问题问询
问题产生原因
- 你当前使用的
riverpod系列依赖版本为0.12.4,属于非常早期的预览版本,并未完整适配Sound Null Safety,因此运行时会抛出依赖不支持空安全的报错,和你认知中高版本riverpod支持空安全的情况不匹配,本质是依赖版本选择错误。 - 该旧版本riverpod依赖的
freezed代码生成规则和你当前项目使用的Dart/Flutter版本不兼容,nullable是旧版freezed的专属配置参数,新版已经移除该属性,因此加--no-sound-null-safety运行时会抛出Getter找不到的错误。
解决方法
- 首先将pubspec.yaml中三个riverpod相关依赖升级到和你当前Flutter版本匹配的稳定版,三个包的版本号必须完全一致,避免依赖冲突:
如果你使用的是Flutter 3.0及以上版本,参考配置如下:
dependencies: flutter_riverpod: ^2.3.0 hooks_riverpod: ^2.3.0 riverpod: ^2.3.0
- 执行命令清理旧缓存并重新拉取依赖:
flutter clean flutter pub get
- 升级后所有依赖已完整支持空安全,直接正常运行项目即可,不需要添加
--no-sound-null-safety参数:
flutter run
如果你的项目存在其他必须使用非空安全模式运行的旧依赖,需要单独对应降级Dart SDK或者适配旧依赖的生成代码规则,避免版本不兼容报错。
内容的提问来源于stack exchange,提问作者Khasanjon Temirov
相关产品推荐
相关产品推荐

