Flutter中无法编辑splash screen及对应xml文件,自定义设置不生效
Flutter自定义启动页配置无效、固定显示红色问题排查指南
所有启动页不生效的问题,本质都是原生启动阶段的配置优先级高于Flutter侧配置,如果出现固定显示红色的情况,优先按以下顺序排查:
1. 检查原生层的启动页默认背景配置
- Android端:打开
android/app/src/main/res/values/styles.xml,定位应用启动主题中的android:windowBackground属性,检查属性值是否设置为红色色值。该属性是应用冷启动第一个加载的视觉配置,优先级最高,即使在Flutter侧修改再多启动页参数,只要这里保留了红色值,启动阶段就会始终显示红色。需将该属性替换为你配置的自定义背景资源(比如自定义的启动图drawable、目标配色的color值)。 - iOS端:打开
ios/Runner/Base.lproj/LaunchScreen.storyboard,检查故事board中的视图背景色是否被设置为红色;同时确认Info.plist中没有残留指向旧的红色启动页xib的配置项。
2. 核对自定义资源的存放路径匹配度
确认你添加的目标图片存放位置:原生启动阶段不会直接读取Flutter项目根目录的assets文件夹内容,启动图需要分别放到对应平台的原生资源目录:
- Android端的启动图需放到
android/app/src/main/res/drawable-*对应的分辨率目录下 - iOS端的启动图需添加到
ios/Runner/Assets.xcassets的LaunchImage资源组中
仅将图片放到Flutter的assets目录、在pubspec.yaml中注册资源,是无法被原生启动逻辑识别的,系统会因找不到匹配资源,自动回退到默认的红色启动背景。
3. 排查启动页配置插件的有效性
如果使用flutter_native_splash这类官方支持的启动页生成插件:
- 检查
pubspec.yaml中的插件配置项,确认配置的目标图片路径、背景色值和你项目内实际存在的资源完全一致,没有拼写错误。 - 修改配置后需要重新运行
flutter pub run flutter_native_splash:create命令,让插件重新生成全平台的启动页配置文件,仅修改配置内容不重新生成,原生层不会同步更新。
4. 清理缓存避免旧配置残留
- 依次执行
flutter clean、flutter pub get清除项目内的构建缓存 - 卸载设备/模拟器上的旧测试应用,不要直接覆盖安装,避免系统复用之前缓存的红色启动页资源
- 重新构建安装新版本应用测试配置效果
高频踩坑提醒
- 不要混淆应用图标配置和启动页配置:仅负责生成应用图标的工具不会修改启动页相关参数,不要误以为配置完图标就会自动同步启动页效果。
- 如果出现配置优先级冲突,需检查所有配置文件中是否存在重复定义的红色背景值,旧的重复配置会覆盖新的启动页设置。
内容的提问来源于stack exchange,提问作者LaurenTsai
相关产品推荐
相关产品推荐

