Flutter新项目执行flutter pub get拉取旧项目依赖问题求助
Flutter新项目pub get拉取大量非声明依赖的解决方法
我在Flutter新项目中执行flutter pub get时,发现拉取了很多未在pubspec.yaml中声明的依赖包(比如firebase系列、awesome_notifications等),但我的pubspec仅配置了少量依赖:
dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 native_notify: ^0.0.17
执行flutter pub get后输出了大量额外依赖,且清理pub缓存后问题依旧。
1. 先明确依赖来源
执行以下命令查看完整依赖树,就能清楚看到这些额外依赖是被哪个包间接引入的:
flutter pub deps
你会发现firebase、awesome_notifications这类包大概率是native_notify的间接依赖,而collection、intl等则是Flutter SDK自带的基础依赖,版本和当前SDK绑定。
2. 彻底清理项目本地残留
- 删除项目根目录下的
pubspec.lock文件(该文件记录旧依赖版本,可能残留无效配置) - 删除项目根目录的
.dart_tool文件夹(Dart本地工具缓存,可能存旧依赖数据) - 重新执行
flutter pub get
3. 升级Flutter SDK
你看到的collection、intl、material_color_utilities等基础依赖版本和Flutter SDK版本绑定,旧SDK会拉取对应旧版本依赖。执行命令升级SDK:
flutter upgrade
升级完成后再重新执行flutter pub get。
4. 强制覆盖冲突依赖版本(可选)
如果确认是native_notify依赖了旧版本的firebase等包,可在pubspec.yaml中添加dependency_overrides强制使用新版本:
dependency_overrides: firebase_core: ^2.15.0 firebase_messaging: ^14.6.5 # 按需添加其他需要覆盖的依赖
⚠️ 注意:这种方法可能导致native_notify出现兼容性问题,优先查看native_notify更新日志,确认是否有适配新版本依赖的版本,优先升级native_notify。
内容的提问来源于stack exchange,提问作者Yous y
相关产品推荐
相关产品推荐

