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

Android Studio中Flutter执行pub get报错,依赖与Null Safety冲突求解决

Stackfood应用编译依赖报错解决方案

问题描述

解析依赖中...
当前Dart SDK版本为3.0.0-290.1.beta。

由于universal_ui 0.0.8不支持null safety,且没有符合>0.0.8 <0.1.0的universal_ui版本,因此universal_ui ^0.0.8被禁止。
因此,由于efood_multivendor依赖universal_ui ^0.0.8,版本解析失败。

要启用null safety,"sdk: '>=2.7.0 <3.0.0'"的下限必须为2.12.0或更高。

分步解决方案

方案1:降级Dart/Flutter版本适配旧依赖

  • 打开终端,执行命令切换到稳定版并查看可用版本:flutter channel stable && flutter versions
  • 选择支持Dart SDK ≥2.7.0 <3.0.0的版本(比如Flutter 2.10.5,对应Dart 2.16.2),执行降级命令:flutter downgrade 2.10.5
  • 验证版本:flutter --version,确认Dart版本处于2.7.0到3.0.0区间内
  • 重新执行flutter pub get,完成依赖解析后尝试编译

方案2:添加依赖覆盖强制兼容(风险提示:可能引发运行时错误)

  • 打开项目根目录下的pubspec.yaml文件
  • 在文件末尾添加依赖覆盖规则:
    dependency_overrides:
      universal_ui: ^0.0.8
    
  • 同时修改sdk约束为:sdk: '>=2.12.0 <3.0.0',开启null safety兼容模式
  • 执行flutter pub get,若出现警告可忽略,之后尝试编译;若运行时出现null相关错误,需手动修复universal_ui源码中的空安全问题

方案3:替换不兼容依赖(长期最优解)

  • 寻找universal_ui的替代跨平台UI组件库(如官方维护的UI组件或社区成熟库)
  • 修改pubspec.yaml,调整efood_multivendor的依赖,移除对universal_ui的依赖并替换为新库
  • 全局替换项目中所有使用universal_ui的代码,适配新组件库的API
  • 执行flutter pub get并编译测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 15:07:44