API 33下Kotlin实现Splash Screen崩溃问题求助
Android Splash Screen 崩溃问题解决
第一个错误:闪屏主题的postSplashScreenTheme配置错误
你把postSplashScreenTheme设成了Theme.SplashScreen,这会导致闪屏结束后Activity仍使用闪屏主题,直接引发主题冲突崩溃。这个属性必须指定你应用的正常主题(比如你的基础主题Theme.BookTFGNormal),而非闪屏主题本身。
修正后的主题代码:
<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools"> <style name="Theme.BookTFGNormal.MySplash" parent="Theme.SplashScreen"> <item name="windowSplashScreenBackground">#FFFFFF</item> <item name="android:windowSplashScreenAnimatedIcon" tools:targetApi="s">@drawable/icon_book</item> <!-- 替换为应用正常主题 --> <item name="postSplashScreenTheme">@style/Theme.BookTFGNormal</item> </style> </resources>
第二个错误:installSplashScreen()与setContent调用顺序颠倒
installSplashScreen()必须在setContentView()(或Jetpack Compose的setContent{})之前调用,顺序反了会直接触发异常。
若使用传统XML布局:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 第一步:安装闪屏 installSplashScreen() // 第二步:设置布局 setContentView(R.layout.activity_main) } }
若使用Jetpack Compose:
class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) // 第一步:安装闪屏 installSplashScreen() // 第二步:设置Compose内容 setContent { BookTFGNormalTheme { Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) { // 你的界面内容写在这里 } } } } }
额外检查项
- 确认
@drawable/icon_book资源存在且格式合法(比如矢量图或适配尺寸的位图),避免资源加载失败导致崩溃。 - 你引入的
androidx.core:core-splashscreen:1.0.1是稳定版本,无需更换。
内容的提问来源于stack exchange,提问作者pablo simón
相关产品推荐
相关产品推荐

