Flutter中dependency_overrides覆盖hooks_riverpod版本不生效如何解决?
问题原因
你仅对hooks_riverpod做了版本锁定,但hooks_riverpod本身依赖独立的riverpod核心包,你的配置没有约束核心包的版本,pub包管理器会自动拉取符合hooks_riverpod 1.0.0-dev.6兼容要求的最高版本riverpod,也就是你遇到的1.0.0-dev.10。
补充说明报错逻辑:Future.ignore是Dart 2.14版本新增的API,你使用的Flutter 2.2.3内置Dart版本为2.13,不支持该API,因此高版本的riverpod会触发编译错误。
解决步骤
- 修正
pubspec.yaml的依赖配置,在dependency_overrides中同时锁定riverpod核心包的版本:
dependencies: hooks_riverpod: 1.0.0-dev.6 dependency_overrides: hooks_riverpod: 1.0.0-dev.6 # 新增riverpod核心包版本锁定,和hooks_riverpod版本对齐 riverpod: 1.0.0-dev.6
- 按顺序执行以下操作清理旧缓存并重新拉取依赖:
- 删除项目根目录下的
.dart_tool文件夹、pubspec.lock文件、.packages文件 - 执行
flutter clean - 执行
flutter pub get
完成后重新编译项目,依赖版本即可正确生效。
内容的提问来源于stack exchange,提问作者Dolphin
相关产品推荐
相关产品推荐

