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

Flutter v2.5.0 Android原生启动屏废弃警告移除后无显示问题咨询

Flutter v2.5.0 启动屏废弃警告及无启动屏问题解决方案

你仅移除旧的io.flutter.embedding.android.SplashScreenDrawable相关代码的操作不完整,该问题不属于框架本身故障,是未适配新版启动屏机制导致的。

正确适配步骤

  • 配置启动屏drawable资源:在android/app/src/main/res/drawable目录下编辑(不存在则新建)launch_background.xml,写入你需要的启动屏样式,示例配置如下:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@android:color/white" />
    <!-- 可替换为你的应用图标或自定义启动图 -->
    <item>
        <bitmap
            android:gravity="center"
            android:src="@mipmap/ic_launcher" />
    </item>
</layer-list>
  • 调整AndroidManifest配置:打开android/app/src/main/AndroidManifest.xml,完全移除带有io.flutter.embedding.android.SplashScreenDrawable的meta-data行,确保MainActivity的meta-data中存在以下配置:
<meta-data
    android:name="io.flutter.embedding.android.NormalTheme"
    android:resource="@style/LaunchTheme" />

同时确认application标签的android:theme属性指向启动主题,或者直接在activity标签指定android:theme="@style/LaunchTheme"。

  • 校验启动主题配置:打开android/app/src/main/res/values/styles.xml,确保LaunchTheme中配置了正确的启动背景:
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
    <item name="android:windowBackground">@drawable/launch_background</item>
    <item name="android:windowFullscreen">false</item> <!-- 按需调整是否全屏 -->
</style>
  • 清理冗余代码:如果之前在MainActivity中重写了provideSplashScreen相关方法,直接删除即可,新版机制会自动读取主题配置的windowBackground作为启动屏,在Flutter引擎初始化完成前持续展示,不会出现空白期。

启动耗时说明

你感知到的启动耗时变长是无启动屏时的视觉错觉:移除旧配置且未适配新机制时,原生启动阶段会展示系统默认空白窗口,视觉上会觉得启动时间变长,适配完成后启动屏展示逻辑和旧版本一致,不会额外增加启动耗时。

内容的提问来源于stack exchange,提问作者Muhammad Idrees

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:18:04