Flutter依赖冲突求助:universal_ui不支持空安全致版本解析失败
解决universal_ui 0.0.8空安全依赖冲突的办法
方案1:换用支持空安全的替代库
universal_ui 0.0.8是停更的旧库,根本没适配空安全,直接换主流替代库就行:
- 比如
flutter_screenutil(多屏幕适配)、responsive_framework(响应式布局)这类成熟且支持空安全的库,把pubspec.yaml里的universal_ui依赖删掉,换成这些库。 - 替换后要改代码里的导入和对应API,比如原来的
import 'package:universal_ui/universal_ui.dart';换成新库的导入,调整布局适配的相关逻辑。
方案2:强制跳过空安全检查(临时救急)
如果暂时不想换库,先凑合用的话,这么操作:
- 在pubspec.yaml的末尾加这段配置:
dependency_overrides: universal_ui: ^0.0.8
- 然后在项目根目录执行命令:
flutter pub get --no-sound-null-safety
- 注意:这只是临时办法,长期用会有空安全隐患,后续还是得换库。
方案3:降级Dart SDK到非空安全版本
要是项目对旧库依赖太深,一时半会儿改不了代码,就降级SDK:
- 修改pubspec.yaml里的sdk范围:
environment: sdk: ">=2.10.0 <2.12.0"
- 执行
flutter pub get拉取依赖,这时候用的是非空安全的Dart环境,能兼容universal_ui 0.0.8。 - 缺点:没法用Dart 2.12+的空安全特性,以后项目升级会受限。
方案4:自己改universal_ui库
要是上面的方案都不合适,就自己fork这个库改造:
- 把universal_ui的GitHub仓库fork到自己账号下,克隆下来后给代码加上空安全支持(比如给可空变量加
?,必填参数加required)。 - 在pubspec.yaml里把universal_ui的依赖换成自己的fork仓库:
universal_ui: git: url: https://github.com/你的用户名/universal_ui.git ref: 你的分支名
- 执行
flutter pub get拉取自己改好的版本。
内容的提问来源于stack exchange,提问作者vroque2022
相关产品推荐
相关产品推荐

