super.onCreate 为 Activity 定义自定义启动画面样式后崩溃?
super.onCreate crashes after defining custom splash screen style to Activity?
我想在我的应用程序中添加一个 SplashScreen,并对此进行了一些研究。一些教程说您可以创建一个 activity 并使用一些计时器显示它几秒钟。我无法让它们工作,然后在此页面 How do I make a splash screen? 中,第二个投票最高的答案说,而不是显示 activity(因此不能替代 white/black 启动加载屏幕,而是增加更多的延迟)你应该创建一个自定义样式并将其分配给 Manifest 文件中的 activity。我这样做了,创建了一个像这样的新样式:
<style name="splashScreenTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/launchscreen</item>
</style>
在 styles.xml 中并将我的清单更改为:
<application
android:name=".EFBApp"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivityDrawer"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
当我运行我的应用程序时,我可以完美地看到启动屏幕,但随后它崩溃了。通过断点,我发现当 MainActivityDrawer(我的 main class)到达 super.onCreate(savedInstanceState);行然后崩溃(它转到 ZygoteInit.java class 之后它在断点调试时崩溃)。如果我删除清单中的 android:theme 行,它可以正常工作,但在启动时会显示可怕的纯白色屏幕。有什么建议或想法吗?非常感谢。
好的,所以我设法让它不崩溃,而不是将父对象指定为 Theme.AppCompat.NoActionBar,我只使用了 AppTheme,它现在可以工作了。我希望这对任何人都有帮助。
我想在我的应用程序中添加一个 SplashScreen,并对此进行了一些研究。一些教程说您可以创建一个 activity 并使用一些计时器显示它几秒钟。我无法让它们工作,然后在此页面 How do I make a splash screen? 中,第二个投票最高的答案说,而不是显示 activity(因此不能替代 white/black 启动加载屏幕,而是增加更多的延迟)你应该创建一个自定义样式并将其分配给 Manifest 文件中的 activity。我这样做了,创建了一个像这样的新样式:
<style name="splashScreenTheme" parent="Theme.AppCompat.NoActionBar">
<item name="android:windowBackground">@drawable/launchscreen</item>
</style>
在 styles.xml 中并将我的清单更改为:
<application
android:name=".EFBApp"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivityDrawer"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/splashScreenTheme">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
当我运行我的应用程序时,我可以完美地看到启动屏幕,但随后它崩溃了。通过断点,我发现当 MainActivityDrawer(我的 main class)到达 super.onCreate(savedInstanceState);行然后崩溃(它转到 ZygoteInit.java class 之后它在断点调试时崩溃)。如果我删除清单中的 android:theme 行,它可以正常工作,但在启动时会显示可怕的纯白色屏幕。有什么建议或想法吗?非常感谢。
好的,所以我设法让它不崩溃,而不是将父对象指定为 Theme.AppCompat.NoActionBar,我只使用了 AppTheme,它现在可以工作了。我希望这对任何人都有帮助。