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

Flutter Firebase项目中Dart SDK版本与依赖包冲突问题求助

解决Flutter与Firebase Messaging依赖版本冲突问题

你这明显是踩了版本兼容性的坑——我来帮你理清楚问题根源,再给你两个可行的解决办法:

问题核心

你现在用的是Flutter 1.22.2稳定版,这个版本对应的Dart SDK是2.10.2,还不支持空安全特性。但你依赖的firebase_messaging: ^9.0.0是Firebase推出的空安全版本,它硬性要求Dart SDK必须在>=2.12.0-0 <3.0.0范围内,两者的版本要求完全不匹配,自然导致pub get执行失败。

解决方案(二选一)

方案1:升级Flutter到支持空安全的稳定版(推荐)

Firebase 9.x系列已经全面适配空安全,而Flutter 2.0及以上版本才正式支持空安全,从长期维护的角度来说,升级是最优选择:

  • 打开终端,先确保在稳定频道(避免升级到不稳定的开发版):
    flutter channel stable
    
  • 执行升级命令:
    flutter upgrade
    
  • 升级完成后,运行flutter doctor确认所有环境配置正常
  • 最后重新执行flutter pub get,依赖就能正常解析了

方案2:降级Firebase依赖到兼容旧Dart版本的版本

如果暂时不想升级Flutter,可以把Firebase相关依赖都降级到非空安全的8.x系列,适配你的Dart 2.10.2:

  1. 修改pubspec.yaml中的依赖配置:
    dependencies:
      firebase_analytics: ^6.3.0
      firebase_core: ^0.7.0
      firebase_crashlytics: ^0.4.0+1
      firebase_messaging: ^8.1.1
    

    注意:所有Firebase依赖要同步降级,单独降级某一个很可能会引发新的兼容性冲突

  2. 保存文件后,执行flutter pub get即可

额外提醒

Firebase从9.x版本开始就全面转向空安全架构,后续的功能更新和Bug修复都会基于这个标准。如果你的项目需要长期维护,还是更推荐方案1升级Flutter,这样能更好地适配未来的Firebase迭代。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 10:12:47