Android 12 Splash Screen API在API 31设备启动页图标不显示求助
问题解决方案
你现有MainActivity中installSplashScreen()的调用时机符合要求,无需调整,按以下步骤排查修复即可:
- 移除单独创建的values-v31资源目录下的启动页样式配置,core-splashscreen兼容库已经自动完成不同系统版本的属性适配,手动区分添加带android前缀的属性会和兼容库逻辑冲突,反而导致属性不生效。
- 统一在默认values目录下的样式文件中配置启动页属性,所有属性均不添加android前缀,参考配置如下:
<style name="Theme.Splash" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/orange_7A</item> <item name="windowSplashScreenAnimatedIcon">@drawable/splash_foreground</item> <item name="postSplashScreenTheme">@style/Theme.App</item> </style>
- 检查启动图标资源
splash_foreground是否符合规范:如果是矢量图不要存在嵌套图层,总尺寸控制在288288dp以内,核心显示内容要落在192192dp的安全区域内,外围96dp的区域会被系统自动添加圆形遮罩裁剪,若内容绘制在裁剪区域内会导致视觉上图标未显示。 - 测试前先卸载设备上已安装的同包名应用,清理系统的启动页资源缓存后再重新安装验证。
- 若以上操作仍未解决,可临时将图标替换为和背景色强对比的纯色测试图,排查是否是图标颜色和背景色重合导致的视觉问题。
内容的提问来源于stack exchange,提问作者Joseph Hawkes-Cates
相关产品推荐
相关产品推荐

