我正在使用SplashScreenApi实现SplashScreen,但当我运行应用程序时,出现闪屏,然后我的应用程序崩溃并显示此消息
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.splashscreenapi/com.example.splashscreenapi.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
这是我创建的splashTheme.xml,创建方法是:值-〉新资源文件-〉样式. xml
<resources>
<style name="Theme.SplashTheme" parent="Theme.SplashScreen">
<item name="windowSplashScreenBackground">#FFFFFF</item>
<item name="windowSplashScreenAnimatedIcon">@drawable/ic_baseline_baby_changing_station_24</item>
<item name="windowSplashScreenAnimationDuration">200</item>
<item name="postSplashScreenTheme">@style/Theme.SplashScreenAPI</item>
</style>
</resources>
下面是我的主题. xml
<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.SplashScreenAPI" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/purple_500</item>
<item name="colorPrimaryVariant">@color/purple_700</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->
</style>
</resources>
我的清单. xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:allowBackup="true"
android:dataExtractionRules="@xml/data_extraction_rules"
android:fullBackupContent="@xml/backup_rules"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.SplashScreenAPI"
tools:targetApi="31">
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.SplashTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.app.lib_name"
android:value="" />
</activity>
</application>
</manifest>
我已经遵循每一个解决方案,但没有为我工作。我会感谢你的努力。
2条答案
按热度按时间mzsu5hc01#
在themes.xml的父文件中尝试此操作
vof42yt12#
最后,我找到了一个解决方案,实际上,我在Manifest.xml文件的application标记中使用了我的应用程序主题。
现在,我在application标记中应用我的app主题而不是splashScreen主题时,遇到了一个问题
问题:
解决方案:
然后在Manifest.xml的activity标签中设置应用主题。
另外,不要忘记在activity .java/kt文件中调用installSplashScreen()