Flutter Firebase应用对接Dialogflow时出现依赖版本冲突如何解决
Flutter Firebase 与 Dialogflow 依赖冲突解决方案
冲突核心为http包版本不兼容:firebase_storage ^8.1.3要求http ^0.13.0,flutter_dialogflow ^0.1.3要求http ^0.12.0+2,两个依赖对http的大版本要求不一致,导致pub版本求解失败
可按优先级选择以下任意一种方案解决:
- 方案1:使用
dependency_overrides强制指定http版本(最快适配,优先推荐)
直接在项目pubspec.yaml中添加如下配置,强制所有依赖使用指定版本的http包:
该方案适配成本极低,多数场景下dependency_overrides: http: ^0.13.0flutter_dialogflow可正常兼容0.13.x版本的http包,若运行后出现Dialogflow相关接口报错再更换其他方案即可。 - 方案2:替换停止维护的
flutter_dialogflow依赖
社区版flutter_dialogflow已多年未更新,建议更换为官方维护、适配高版本依赖的Dialogflow适配包,或支持http ^0.13.0的社区第三方Dialogflow封装包,从根源避免后续出现更多兼容性问题。 - 方案3:降级
firebase_storage版本
若不需要使用firebase_storage 8.x版本的新特性,可直接将pubspec.yaml中firebase_storage的版本修改为^7.0.0,该版本依赖的http包为0.12.x区间,可直接与flutter_dialogflow ^0.1.3兼容。
内容的提问来源于stack exchange,提问作者Mandara Sharannya
相关产品推荐
相关产品推荐

