Flutter SDK版本修改失败求助:依赖firebase_auth与firebase_auth_oauth时版本解析错误
问题分析与解决方案
你的问题核心在于Flutter/Dart版本的稳定性与依赖包的版本约束不匹配,具体原因和解决方法如下:
你当前使用的Dart SDK是预发布的开发版(2.12.0-224.0.dev),而firebase_auth_oauth:^1.0.0要求的是稳定版的Dart 2.12.0及以上(约束>=2.12.0 <3.0.0默认指向稳定版语义化版本,dev版的版本号不会被识别为满足该约束)。哪怕你修改了pubspec的SDK范围,当前的Dart dev版本依然不满足依赖包对稳定版Dart的要求,所以才会持续报错。
解决步骤
1. 升级Flutter到稳定版(推荐方案)
Flutter 2.0及以上的稳定版才正式捆绑了稳定版的Dart 2.12+,这是满足firebase_auth_oauth要求的基础:
- 打开终端,切换到稳定通道:
flutter channel stable - 执行升级命令:
flutter upgrade - 升级完成后,确认Dart版本是稳定版的2.12+(执行
dart --version查看) - 保持pubspec.yaml中的SDK约束为:
environment: sdk: ">=2.12.0 <3.0.0" - 最后执行
flutter pub get,应该就能成功解析依赖。
2. 检查其他依赖的版本冲突(辅助排查)
如果升级后仍有问题,检查pubspec.yaml中其他依赖是否有要求更低SDK版本的情况——比如某些旧依赖可能还不支持Dart 2.12的空安全特性,需要同步升级这些依赖到支持空安全的版本。
补充说明
你的当前Flutter版本是1.26.0-12.0.pre(dev通道),属于Flutter 2.0正式发布前的预览版,对应的Dart版本也是预发布的dev版,这类版本通常会和要求稳定版SDK的依赖包出现版本解析冲突,切换到稳定版是最稳妥的解决方式。
内容的提问来源于stack exchange,提问作者venum




