flutter_native_splash在Android12设备闪屏logo不显示问题求解
Android 12端闪屏Logo不显示解决方案
问题原因
Android 12 对系统原生闪屏页有强制的图标尺寸规范,你使用的flutter_native_splash 2.2.3+1版本在适配Android 12时,会严格遵循系统规则校验图标:如果android_12节点配置的图标没有预留要求的安全边距、尺寸不符合规范,系统会直接拦截图标渲染,只显示背景色,这也是其他端正常、仅Android 12异常的核心原因。你当前配置直接复用了普通端的闪屏图,没有做Android 12专属的尺寸适配。
修复步骤
- 制作Android 12专用闪屏图标
按照官方规范导出专用图标:整体画布尺寸设为1152*1152px,logo核心内容放在画布中间768*768px的区域内,四周剩余区域留透明,不要让logo占满整个画布。将处理好的图标存为单独的资源文件,比如assets/images/splash_android12.png,不要和其他端的闪屏图混用。 - 修正pubspec.yaml配置
删除冗余的android12: true字段,在android_12节点下指定处理好的专用图标,参考配置如下:
dev_dependencies: flutter_test: sdk: flutter flutter_native_splash: ^2.2.3+1 flutter_lints: ^2.0.0 flutter_native_splash: image: assets/images/splash.png color: "#23AA49" android: true ios: true web: true android_12: image: assets/images/splash_android12.png color: "#23AA49"
- 清理缓存重新生成闪屏配置
依次执行以下命令,避免旧构建缓存干扰:- 运行
flutter clean清理项目历史构建产物 - 运行
flutter pub get拉取依赖 - 运行
dart run flutter_native_splash:create重新生成全平台闪屏原生配置 - 先卸载测试机上已安装的旧版App,再重新编译安装即可生效。
- 运行
排查兜底
如果完成以上操作后仍然异常,检查android/app/src/main/AndroidManifest.xml文件,确认你没有手动添加自定义的闪屏主题配置覆盖了插件自动生成的内容,如果有手动写的闪屏相关style配置,删除后重新执行生成命令即可。
内容的提问来源于stack exchange,提问作者Neel Moradiya
相关产品推荐
相关产品推荐

