Android应用启动页加载完成后闪退问题技术问询
问题根因
从报错日志可直接定位崩溃原因:你在MainActivity中调用setSupportActionBar()设置自定义Toolbar,但MainActivity当前使用的主题默认自带了系统ActionBar,二者冲突导致抛出IllegalStateException异常。
可行解决方案
方案一(推荐,保留自定义Toolbar):给MainActivity配置不带ActionBar的主题
打开AndroidManifest.xml,修改MainActivity的注册代码,添加theme属性,和SplashActivity保持一致即可:
<activity android:name=".MainActivity" android:theme="@style/Theme.MyApplication.NoActionBar" />
如果你想全局生效,所有Activity都支持自定义Toolbar,直接修改res/values/styles.xml里的App全局主题Theme.MyApplication,添加两个配置项:
<item name="windowActionBar">false</item> <item name="windowNoTitle">true</item>
方案二(不需要自定义Toolbar可选择):删除自定义Toolbar相关代码
直接删掉MainActivity中setSupportActionBar(binding.toolbar)以及后续和NavigationUI绑定ActionBar的相关代码,直接使用系统自带的ActionBar即可。
另外补充一个非崩溃但不合理的代码问题:当前Splash类继承了MainActivity完全没有必要,改成直接继承AppCompatActivity即可,避免后续MainActivity逻辑改动牵连启动页出现未知问题。
内容的提问来源于stack exchange,提问作者ArPiT
相关产品推荐
相关产品推荐

