Dart SDK版本与非空安全依赖不兼容问题求助
问题原因
你的Dart SDK是3.0.6(属于支持null safety的高版本),但flutter_google_maps这个包的现有版本不支持null safety,且要求SDK版本必须低于3.0.0。你改pubspec.yaml里的SDK范围没用,因为本地Flutter环境已经绑定了高版本Dart,得调整环境版本才行。
解决方法
方法1:降级Flutter(适配旧包)
- 打开终端,直接执行降级命令到兼容版本:
这个版本对应的Dart是2.16.2,刚好满足flutter downgrade 2.10.5>=2.12.0 <3.0.0的要求,既能支持null safety,又能适配flutter_google_maps。 - 降级完成后,运行
flutter pub get,再导入包就正常了。
方法2:换用官方维护的替代包(不用降级)
放弃flutter_google_maps,改用谷歌官方的google_maps_flutter,它完全支持Dart3.x和null safety:
- 执行命令添加包:
flutter pub add google_maps_flutter - 把导入路径换成
package:google_maps_flutter/google_maps_flutter.dart,功能和旧包一致,后续维护更靠谱。
关于which dart/flutter无响应的说明
这是终端环境的小问题,不用管它,直接用Flutter自带的命令管理版本就行。
内容的提问来源于stack exchange,提问作者audaciity
相关产品推荐
相关产品推荐

