Android Splash Screen API配置后启动显示空白屏问题求助
问题排查及修复方案
- 1. 替换为稳定版依赖
你使用的1.0.0-alpha01属于早期测试版本,存在大量兼容性bug,先替换为官方稳定版依赖:
implementation "androidx.core:core-splashscreen:1.0.1"
- 2. 修正启动主题父类配置
兼容版Splash Screen API要求启动主题必须继承自Theme.SplashScreen系列,不能直接使用AppCompat主题,修改样式配置如下:
<style name="SplashTheme" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/black</item> <item name="windowSplashScreenAnimatedIcon">@drawable/ic_search</item> <item name="postSplashScreenTheme">@style/Theme.AppTheme</item> <!-- 不需要ActionBar可添加以下两行 --> <item name="windowActionBar">false</item> <item name="windowNoTitle">true</item> </style>
你现有Manifest中给MainActivity绑定SplashTheme的配置符合要求,无需调整。
- 3. 调整installSplashScreen调用顺序
该方法必须在super.onCreate之前调用,修改MainActivity的代码顺序:
override fun onCreate(savedInstanceState: Bundle?) { // 优先调用installSplashScreen installSplashScreen() super.onCreate(savedInstanceState) // 再执行后续初始化、视图绑定逻辑 toolbar = binding.viewToolbar.tbToolbar // ... 其余原有代码 }
4. 校验启动图标尺寸
启动图标需要符合官方规范:整体尺寸288x288dp,内层有效显示区域为192x192dp,外层预留48dp的透明边距,避免图标被裁剪导致无法显示、看起来呈现空白屏的问题。5. 确认测试场景
Splash Screen API仅在应用冷启动(进程完全杀死后首次启动)、温启动(进程在后台未被回收但Activity已销毁)时显示,热启动(应用退到后台未被销毁、直接切回)不会触发启动页,测试时需要完全杀掉应用进程后再启动验证。
内容的提问来源于stack exchange,提问作者amar2108
相关产品推荐
相关产品推荐

