Flutter空安全项目导入splashscreen依赖出现legacy库警告如何解决?
你遇到的警告是因为依赖的splashscreen: ^1.3.3版本未适配空安全,且该库已停止维护,可根据你的需求选择以下任意方案处理:
方案1:替换为已适配空安全的启动屏库(最推荐)
移除pubspec.yaml中原有的splashscreen: ^1.3.3依赖,替换为目前主流维护的空安全启动屏库,例如flutter_native_splash,该库功能覆盖原splashscreen的所有能力,且适配全平台空安全要求。替换后更新导入语句对应新库的路径即可消除警告。方案2:忽略单个导入的linter警告
如果暂时不想替换库,可在对应导入语句的上一行添加忽略注释,单独屏蔽该警告:// ignore: import_of_legacy_library_into_null_safe import 'package:splashscreen/splashscreen.dart';注意该方案仅屏蔽警告,不会解决库本身的空安全隐患,运行时可能出现空指针异常。
方案3:全局允许非空安全代码混合运行
如果项目中存在多个未适配空安全的legacy库,可在运行、打包命令后添加--no-sound-null-safety参数,全局关闭空安全校验:
运行命令:flutter run --no-sound-null-safety
安卓打包命令:flutter build apk --no-sound-null-safety
iOS打包命令:flutter build ios --no-sound-null-safety
该方案会降低整个项目的空安全可靠性,不建议长期使用。方案4:自行迁移legacy库的空安全适配
如果你必须使用该库的特定版本,可fork原库的源代码,手动完成空安全适配后,在pubspec.yaml中依赖你修改后的本地库路径或者git仓库地址即可。
内容的提问来源于stack exchange,提问作者078_Aaryan

