使用riverpod_generator遭遇依赖冲突及build_runner执行失败求助
问题原因
你遇到的是analyzer版本不兼容导致的编译错误。手动覆盖analyzer: ^6.9.0后,依赖链实际拉取了更高版本的analyzer(7.4.5),而旧版本analyzer_plugin:0.12.0不支持analyzer 7.x的API变更(比如Element/Element2类型拆分、方法名调整),从而触发类型不匹配和方法不存在的报错。
解决方案
1. 移除错误的依赖覆盖
删掉dependency_overrides中的analyzer配置,让pub自动处理兼容版本:
# 移除这段配置 dependency_overrides: analyzer: ^6.9.0
2. 统一Riverpod生态版本
确保flutter_riverpod、riverpod_annotation、riverpod_generator、riverpod_lint版本完全一致,避免跨版本兼容性问题:
dependencies: # ... 其他依赖 flutter_riverpod: ^2.6.4 riverpod_annotation: ^2.6.4 dev_dependencies: # ... 其他依赖 riverpod_generator: ^2.6.4 riverpod_lint: ^2.6.4
3. 更新dev依赖到兼容版本
升级custom_lint到支持最新analyzer的版本,同时确保其他代码生成工具版本兼容:
dev_dependencies: # ... 其他依赖 custom_lint: ^0.7.2 build_runner: ^2.4.13
4. 清理缓存并重新获取依赖
执行以下命令彻底清理缓存,拉取兼容的依赖包:
fvm flutter pub cache clean fvm flutter pub get
5. 重新运行build_runner
使用dart run替代已废弃的flutter pub run命令:
fvm dart run build_runner build --delete-conflicting-outputs
完整修改后的pubspec.yaml示例
environment: sdk: ^3.6.0 dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.8 flutter_screenutil: ^5.9.3 go_router: ^14.6.3 flutter_riverpod: ^2.6.4 riverpod_annotation: ^2.6.4 flutter_svg: ^2.0.17 drift: ^2.24.0 drift_flutter: ^0.2.4 upgrader: ^11.3.1 freezed_annotation: ^2.4.4 json_annotation: ^4.9.0 dartz: ^0.10.1 dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^5.0.0 riverpod_generator: ^2.6.4 custom_lint: ^0.7.2 riverpod_lint: ^2.6.4 drift_dev: ^2.24.0 freezed: ^2.5.8 json_serializable: ^6.9.3 build_runner: ^2.4.13
内容的提问来源于stack exchange,提问作者Manish Basnet
相关产品推荐
相关产品推荐

