Flutter中syncfusion_flutter_pdf与odoo_api依赖冲突pub get失败如何解决
依赖冲突解决方案
核心冲突是syncfusion_flutter_pdf 19.2.60-beta依赖crypto ^3.0.0,而odoo_api 1.0.4依赖的uuid ^2.0.2仅支持crypto ^2.0.0,三个依赖的版本约束互斥,可通过以下方案解决:
- 方案1:使用
dependency_overrides强制覆盖依赖版本
在你的pubspec.yaml文件中新增依赖覆盖配置,强制项目统一使用支持crypto 3.0的uuid高版本,配置如下:
配置完成后重新执行dependency_overrides: uuid: ^3.0.7flutter pub get即可拉取依赖。该方案操作成本最低,建议优先尝试,完成后测试odoo_api相关功能是否正常即可,绝大多数场景下uuid 3.x对2.x的兼容度很高,不会出现功能异常。注意:如果执行后提示SDK版本不兼容,可将
environment下的sdk约束修改为sdk: ">=2.12.0 <3.0.0",你已升级最新版Flutter,完全支持该版本范围。 - 方案2:降低
syncfusion_flutter_pdf的版本
如果你担心覆盖uuid版本会引发未知问题,可以选择使用19.2.44-beta之前版本的syncfusion_flutter_pdf,该区间的版本依赖crypto ^2.0.0,和现有odoo_api依赖完全兼容,将依赖修改为:
重新执行syncfusion_flutter_pdf: ^19.1.66-betaflutter pub get即可,该方案无需修改其他配置,稳定性最高,仅需确认低版本的pdf组件是否包含你需要的所有功能。 - 方案3:自定义修改odoo_api依赖
如果你有定制开发需求,可以fork官方odoo_api仓库,将其依赖的uuid版本升级到3.x后,通过path或git方式引用你修改后的odoo_api版本,该方案灵活度最高,但需要一定的改造成本。
内容的提问来源于stack exchange,提问作者Manuel loira
相关产品推荐
相关产品推荐

