我发现我正在启动的一个新应用程序存在一个奇怪的问题。我正在使用新的 Android 12 初始屏幕 API 来创建我的初始屏幕,我遵循 guide provided by Google这样做。我在我的项目中包含了 core-splashscreen,以提供与旧版本 Android 操作系统的兼容性。当我运行该应用程序时,我在 API 30 等旧操作系统版本上看到了预期的启动屏幕,但是当我在 API 31 上运行它时,我提供的启动屏幕图标不显示。显示我指定的背景颜色,但图标根本不存在。我已经尝试过使用可绘制 Assets 和 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”属性设置为我的初始样式。我知道正在应用启动样式,因为它尊重背景颜色,但由于某种原因它没有显示图标,即使图标对于旧操作系统版本显示良好。提前感谢您提供的任何帮助。
最佳答案
TL;DR 杀死应用程序并从启动器运行,从 Android Studio 运行时图标不显示。
在此处添加我的评论作为更好可见性的答案。
我确实想出了如何让它显示出来。我在关注 this tutorial建立一个基础项目来重新创建问题,我注意到作者放在底部附近的注释提到仅运行应用程序不会显示完整的初始屏幕。您必须杀死它并从启动器中打开应用程序。一旦我这样做了,我就可以看到我的启动画面。烦人,但至少我现在有办法测试它。我确实继续记录了 bug report对此也是如此,但我现在有一个解决方法。感谢大家的回答/评论!
关于Android 12 启动画面图标不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69812590/