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

TargetSdk为34时Android SplashScreen自定义失效问题求助

Android 13+(API34)SplashScreen不生效问题排查方案

针对你遇到的启动屏颜色随深色模式变化、图标始终为启动器图标的问题,按以下步骤排查:

1. 确保正确调用installSplashScreen()(Jetpack Compose必做)

在Activity的onCreate方法中,必须在setContent之前调用installSplashScreen(),否则系统会 fallback 到默认启动屏:

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 关键:先安装启动屏
        installSplashScreen()
        setContent {
            YourAppTheme {
                // 你的Compose内容
            }
        }
    }
}

2. 检查core-splashscreen依赖版本

使用适配API34的稳定版本,建议添加:

implementation "androidx.core:core-splashscreen:1.0.1"

(版本过低可能存在API34适配问题,避免使用测试版)

3. 修复启动屏主题配置

  • 确认windowSplashScreenBackground使用固定颜色值(避免随深色模式变化):
    把@color/primary替换为具体色值(比如#FF6200EE),或检查values-night/colors.xml中是否意外修改了primary颜色。
  • 验证自定义图标资源:
    windowSplashScreenAnimatedIcon要求是有效的可绘制资源,SVG需确保正确导入(建议先用PNG图标测试,排除SVG兼容性问题),避免资源命名或路径错误。

4. 排除主题覆盖问题

  • 检查Manifest中<activity>标签是否单独设置了android:theme,如果有会覆盖application级别的启动屏主题,需移除或统一为@style/Theme.App.Starting。
  • 确保Theme.App.Starting的父主题是Theme.SplashScreen,不要继承其他Material主题。

5. 清理缓存并重装应用

执行以下操作确保资源生效:

  • 执行Build -> Clean Project + Build -> Rebuild Project
  • 卸载现有应用后重新安装(避免缓存残留)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 21:17:19