Flutter升级依赖报错 google_maps_flutter与google_map_polyline版本冲突
本次版本求解失败和Flutter安装状态、全局缓存无关,核心原因是依赖包存在不可兼容的版本约束:
所有已发布的
google_map_polyline版本均依赖google_maps_flutter ^0.5.x,但你的项目指定了google_maps_flutter ^2.1.0,两个版本约束无法同时满足,最终触发依赖求解失败。
你之前执行的flutter pub cache repair、flutter pub get均无法解决该类依赖约束冲突问题,无需删除缓存或重装Flutter。
方案1:替换已停止维护的
google_map_polyline包(推荐)google_map_polyline已超过3年未更新,未适配高版本谷歌地图依赖,你可以直接替换为功能一致且持续维护的google_polyline_points包,删除pubspec.yaml中google_map_polyline的依赖声明,新增google_polyline_points: ^1.0.0(可自行选择最新适配版本),再执行flutter pub get即可,包的API调用逻辑差异极小,仅需少量调整即可兼容。方案2:强制覆盖依赖版本
如果必须继续使用google_map_polyline,可以在pubspec.yaml中添加dependency_overrides节点强制指定版本,配置示例如下:
dependency_overrides: google_maps_flutter: ^2.1.0
注意:该方案属于强制兼容,可能触发google_map_polyline内部调用旧版API时报运行时错误,需要自行测试功能可用性。
- 无权限问题处理
如果执行上述操作后运行flutter pub get仍提示无权限,按对应操作系统处理即可:- Windows:关闭当前IDE,右键以管理员身份启动终端,进入项目目录重新执行命令
- macOS/Linux:执行
sudo flutter pub get,输入开机密码授权后即可完成依赖安装
内容的提问来源于stack exchange,提问作者Fraire_Lumiere

