我在启动一个新应用程序时遇到了奇怪的问题。我正在利用新的Android 12闪屏API创建我的闪屏屏幕,并按照Google提供的指南进行操作。我将core-splashscreen包含在我的项目中,以提供与旧版本的Android OS的兼容性。当我在旧的OS版本(如API 30)上运行应用程序时,我看到了预期的闪屏屏幕,但是当我在API 31上运行它时,我提供的闪屏屏幕图标没有显示出来。我指定的背景颜色显示出来了,但是图标根本没有显示出来。我已经尝试过使用可绘制的资产和mipmap,但没有任何作用。我很困惑,因为我找到的每个教程都显示了我所遵循的相同步骤和他们工作的闪屏屏幕的截图,但我没有任何运气。
以下是我针对v31的闪屏屏幕样式定义的上下文:
<style name="Theme.Splash" parent="Theme.SplashScreen">
<item name="android:windowSplashScreenBackground">@color/orange_7A</item>
<item name="android:windowSplashScreenAnimatedIcon">@drawable/splash_foreground</item>
<item name="postSplashScreenTheme">@style/Theme.App</item>
</style>
除了我使用“windowSplashScreenAnimatedIcon”而不是“android:windowSplashScreenAnimatedIcon”之外,我为所有其他操作系统版本都有相同的样式。我尝试过在v31中在项目名称前加上“android:”,但两者都不起作用。这是我的MainActivity.kt:
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
installSplashScreen()
setContent {
MyVeevaTheme {
Login()
}
}
}
我还在AndroidManifest.xml中将“android:theme”属性设置为我的启动画面样式。我知道启动画面样式已应用,因为它遵循背景颜色,但由于某种原因它没有显示图标,尽管在较旧的操作系统版本中图标正常显示。非常感谢您能提供的任何帮助。
android
前缀。 - Vadim Caen