You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Google Maps时依赖版本冲突问题求助

解决Google Maps Flutter包依赖冲突问题

问题根源分析

你当前的依赖配置存在两个核心问题:

  1. 冗余地图包冲突:同时引入了google_maps_flutter(Flutter原生跨端地图)、google_maps(Web端JS地图包装)和flutter_map(第三方开源地图),这三个包的依赖链互相制约,导致版本无法升级。
  2. SDK版本限制过严:你的Dart SDK被限制在<3.0.0,但google_maps 7.0.0、js 0.7.0等新版本都要求Dart 3.0+,这直接导致无法升级这些包。

分步解决方案

1. 清理冗余依赖

根据你的开发场景二选一:

  • 若开发移动端(iOS/Android):保留google_maps_flutter,删除google_maps和flutter_map(如果不需要第三方地图)
  • 若开发Web端:保留google_maps和js,删除google_maps_flutter和flutter_map
  • 若需要跨端兼容:使用Flutter的条件依赖语法区分平台(示例见下文)

2. 放宽SDK版本限制

修改pubspec.yaml中的环境配置,支持Dart 3.0+:

environment:
  sdk: '>=3.0.0 <4.0.0'

3. 调整依赖版本

以下是两种场景的示例配置:

场景一:移动端使用google_maps_flutter
name: google_maps_in_flutter
description: "A new Flutter project."
publish_to: 'none'

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  cupertino_icons: ^1.0.2
  flutter:
    sdk: flutter
  google_maps_flutter: ^2.6.0 # 兼容Dart3的版本

dev_dependencies:
  flutter_lints: ^3.0.1
  
flutter:
  uses-material-design: true
场景二:Web端使用google_maps
name: google_maps_in_flutter
description: "A new Flutter project."
publish_to: 'none'

environment:
  sdk: '>=3.0.0 <4.0.0'

dependencies:
  cupertino_icons: ^1.0.2
  flutter:
    sdk: flutter
  google_maps: ^7.0.0
  js: ^0.7.0

dev_dependencies:
  flutter_lints: ^3.0.1
  
flutter:
  uses-material-design: true

4. 执行依赖更新

运行以下命令完成依赖安装:

flutter pub get

如果仍有冲突,执行flutter pub outdated查看具体冲突的依赖项,针对性调整版本号。

补充说明

你之前执行flutter pub upgrade时的提示,本质是因为现有SDK版本和依赖约束不允许安装新版本包,解决上述核心问题后即可正常升级。

内容的提问来源于stack exchange,提问作者LearningAnew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 08:59:59