升级Dart SDK至3.0.0-dev后添加universal_ui包遇空安全兼容问题求助
解决universal_ui与Dart 3.0+ SDK版本不兼容的问题
给你几个可行的解决思路:
1. 降级Dart/Flutter SDK到3.0以下
因为universal_ui的依赖约束明确要求SDK版本在>=2.7.0 <3.0.0之间,你可以把Flutter SDK降级到2.19.x这类3.0之前的稳定版本(2.12及以上版本已经支持空安全,但该包未启用,不过SDK兼容这个区间)。
- 执行命令降级:
flutter downgrade 2.19.6(可替换为你需要的具体版本) - 降级完成后重新执行
flutter pub get即可安装该包
2. 替换为支持空安全的替代包
universal_ui看起来已经很久没维护,不支持空安全和Dart 3.x,不如直接换个功能类似且维护活跃的包,比如flutter_screenutil、responsive_framework这类常用的UI适配包,替换后调整代码逻辑就行,长期来看更稳定。
3. 手动修改包的依赖约束(风险提示)
这是临时应急方案,可能会带来运行时兼容性问题,谨慎使用:
- 在项目的
pubspec.yaml里添加dependency_overrides,强制指定universal_ui的来源(可以是git仓库或者本地路径):dependency_overrides: universal_ui: git: url: https://github.com/fluttercommunity/universal_ui.git ref: main - 拉取包后,手动修改该包内部的
pubspec.yaml,把SDK约束改成>=2.12.0 <4.0.0 - 最后执行
flutter pub get,之后可能需要修复包内空安全相关的报错
内容的提问来源于stack exchange,提问作者Ammar Kayali
相关产品推荐
相关产品推荐

