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

Flutter应用Android 12真机splash screen无法加载如何解决

Android 12 下 Flutter 启动页不显示修复方案

Android 12 对原生启动页做了完全重构,flutter_native_splash 2.x 版本适配时存在多个容易踩的配置坑,按以下步骤逐一排查即可解决:

1. 修正pubspec.yaml配置

你当前的配置仅声明了Android12的启动图路径,缺省必填参数,且yaml格式对缩进、空行敏感,多余空行容易导致参数解析失败,替换为以下配置即可:

dev_dependencies:
  flutter_lints: 2.0.1
  flutter_native_splash: 2.2.3

flutter_native_splash:
  color: "#2d2d75"
  # 适配Android 12以下版本的启动图
  image: assets/splash.png

  android_12:
    # Android12 启动页背景色,需和全局配置保持一致
    color: "#2d2d75"
    # 启动图建议尺寸为1152*1152px,四周预留288px透明边距,符合系统144dp安全区要求,避免被强制裁切
    image: assets/splash12.png
    # 启动图标背景色,和主色调保持一致即可
    icon_background_color: "#2d2d75"

注意:android_12下的所有参数需比flutter_native_splash层级多缩进2个空格,不要用tab缩进。

2. 清理缓存重新生成启动资源

配置完成后不要直接运行项目,按顺序执行以下命令,避免旧缓存干扰:

  • 关闭所有正在运行的flutter应用进程,执行清理:
    flutter clean
  • 重新拉取依赖:
    flutter pub get
  • 手动触发插件生成各端原生启动页资源:
    dart run flutter_native_splash:create
    执行完后观察控制台输出,如果出现Android12相关参数缺失的警告,立刻回头检查yaml配置的缩进和参数名拼写。

3. 检查原生工程配置

打开android/app/build.gradle文件,确认compileSdkVersion设置为31及以上,Android12启动页API最低要求compileSdk版本为31,版本过低会导致插件生成的资源无法被系统识别。
再打开android/app/src/main/AndroidManifest.xml,确认启动Activity的主题引用为@style/LaunchTheme,不要手动覆盖为其他自定义主题,同时检查<application>标签没有配置错误的icon属性覆盖启动页图标。

4. 真机验证注意事项

  • 先完全卸载真机上已安装的旧版本应用,Android12会持久化缓存应用启动页资源,不卸载旧包直接覆盖安装,哪怕资源更新了也会加载旧缓存,这也是关闭重开无效的核心原因
  • 不要用热重载、热重启测试启动页,启动页是冷启动阶段加载的原生资源,必须执行全量安装,冷启动应用才能看到效果
  • 如果启动图还是显示异常,检查splash12.png是否为标准RGB色彩模式的PNG文件,CMYK模式、后缀强行改为PNG的WEBP文件都会被系统启动页加载器拒绝解析,直接回退到默认启动页。

内容的提问来源于stack exchange,提问作者Maryam Kayed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:12:06