Android Studio中Splash Screen不显示,修改配置仍显示默认Logo
解决Android 12+启动页(Splash Screen)仍显示默认Logo的问题
问题诊断
从你提供的配置来看,启动页未生效的核心原因有两个:
- 启动页主题的父类配置错误,未使用Android 12+官方指定的Splash Screen主题
- 未在启动Activity中调用新Splash Screen API的初始化方法
修复步骤
1. 修正themes.xml中的主题配置
将启动页主题的父类改为官方的Theme.SplashScreen,同时确保postSplashScreenTheme指向应用的主主题:
<?xml version="1.0" encoding="utf-8"?> <resources> <!-- 应用主主题 --> <style name="Theme.YourAppName" parent="Theme.Material.Light.NoActionBar"> <!-- 保留你原有的主主题配置 --> </style> <!-- 启动页主题 --> <style name="Theme.CommmuteSplashScreen" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">@color/black</item> <item name="windowSplashScreenAnimatedIcon">@drawable/tictactoe_transformed_removebg_preview</item> <!-- 启动完成后切换到应用主主题 --> <item name="postSplashScreenTheme">@style/Theme.YourAppName</item> </style> </resources>
2. 在启动Activity中初始化Splash Screen
打开MainActivity,在onCreate方法最开始调用SplashScreen.installSplashScreen(),必须在setContentView之前执行:
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { // 初始化启动页 installSplashScreen() super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // 其他业务初始化逻辑 } }
3. 检查资源与Manifest配置
- 确认
@drawable/tictactoe_transformed_removebg_preview资源存在,且尺寸符合Android启动图标规范(建议使用512x512的PNG,适配不同分辨率) - 你当前
AndroidManifest.xml中应用的android:theme配置是正确的,无需修改Activity的theme属性
4. 清理缓存并重新构建
- 执行
Build > Clean Project,再执行Build > Rebuild Project - 卸载设备上的现有应用后重新安装,避免缓存导致的配置不生效问题
额外注意事项
- 若项目需兼容Android 11及以下版本,需在
values-v31文件夹单独存放上述启动页主题,低版本使用传统启动页实现方式 - 若使用Material3主题,启动页主题的父类可改为
Theme.Material3.SplashScreen
内容的提问来源于stack exchange,提问作者Aditya Kumar Singh
相关产品推荐
相关产品推荐

