Flutter项目pub get报错:firebase_messaging与localstorage版本冲突如何解决?
Flutter依赖版本冲突(localstorage与firebase_messaging)解决方法
冲突根源:
你当前使用的
localstorage: ^3.0.6依赖plugin_platform_interface ^1.0.1,而firebase_messaging: ^10.0.3依赖plugin_platform_interface ^2.0.0,两个包对同一底层依赖的版本要求无法兼容,因此版本求解失败。
解决方案(按优先级排序)
- 方案1:升级localstorage版本(优先推荐)
直接将pubspec.yaml中localstorage的版本约束修改为localstorage: ^4.0.0,4.0及以上版本已经适配新版platform接口,可与firebase_messaging 10.x版本兼容。修改后重新执行flutter pub get即可。
修改后的依赖示例:cupertino_icons: ^1.0.2 flutter_ble_lib: ^2.2.3 permission_handler: ^5.0.0+hotfix.3 flutter_blue: ^0.8.0 http: ^0.13.1 localstorage: ^4.0.0 fluttertoast: ^8.0.7 flutter_svg: ^0.22.0 intl: ^0.16.0 flutter_launcher_icons: "^0.9.1" flutter_native_splash: ^1.2.0 firebase_messaging: ^10.0.3 - 方案2:降级firebase_messaging版本
如果项目中旧代码无法适配localstorage 4.x的API变更,可以将firebase_messaging降级到9.x版本,该版本依赖旧版platform接口,可与localstorage 3.0.6兼容。将firebase_messaging版本约束修改为firebase_messaging: ^9.1.4后重新执行flutter pub get即可。 - 方案3:使用dependency_overrides强制指定版本(临时兼容方案)
如果上述两个方案都无法满足需求,可以在pubspec.yaml中添加dependency_overrides节点,强制指定共用依赖的版本,示例如下:
注意:该方案为临时兼容手段,强制覆盖版本可能导致旧依赖包运行异常,仅做临时调试使用,不建议在生产环境长期使用。dependency_overrides: plugin_platform_interface: ^2.0.0
内容的提问来源于stack exchange,提问作者nanotoly
相关产品推荐
相关产品推荐

