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

Android 12+使用SplashScreen API仍出现双重启动屏问题求助

解决Android 12+双重启动屏问题的可行方案

核心原因与排查方向

问题本质是旧启动屏配置未完全清理,即便你只实现了新SplashScreen API,残留的旧配置会和系统默认启动屏叠加,导致双重显示。以下是具体解决步骤:

1. 彻底移除旧启动屏主题配置

检查res/values/styles.xml、res/values-v31/styles.xml等所有主题文件,确保:

  • 删除android:windowBackground指向启动屏drawable的配置
  • 移除android:windowFullscreen、android:windowContentOverlay等关联旧启动屏的属性
  • 启动主题仅继承官方Theme.SplashScreen,示例配置:
<style name="Theme.App.SplashScreen" parent="Theme.SplashScreen">
    <item name="windowSplashScreenBackground">@color/splash_bg</item>
    <item name="windowSplashScreenAnimatedIcon">@drawable/ic_splash_logo</item>
    <item name="postSplashScreenTheme">@style/Theme.App.Main</item>
</style>

2. 修正Activity的主题配置

在AndroidManifest.xml中,确保唯一的主Activity仅设置上述新启动主题,不要同时配置旧启动屏相关主题:

<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.App.SplashScreen"
    android:exported="true">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

3. 规范Compose中的启动过渡逻辑

在MainActivity中正确调用installSplashScreen(),不要手动添加额外的启动屏Composable组件:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val splashScreen = installSplashScreen()
        // 无额外初始化逻辑则无需设置keepOnScreenCondition,系统会自动完成过渡

        setContent {
            YourAppTheme {
                MainScreen()
            }
        }
    }
}

4. 排查第三方依赖的冲突配置

部分第三方SDK可能会自动注入旧启动屏配置,检查build.gradle中的依赖项,若发现冲突,可通过tools:replace属性强制覆盖:

<activity
    android:name=".MainActivity"
    android:theme="@style/Theme.App.SplashScreen"
    android:exported="true"
    tools:replace="android:theme">
    <!-- ... -->
</activity>

5. 验证效果

  • 使用Android 12+真机或模拟器测试启动流程,确认无双重启动屏
  • 打包APK/AAB后,通过Play Console内部测试渠道验证警告是否消失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 10:03:16