手机升级系统后,到了Android8.0,打开原来自己开发的一个app后,发现直接打不开,即闪退了。通过手机重新运行项目调试后发现了问题所在,下面给出解决方法。
报错提示:java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
产生这个错误的原因是因为清单配置文件中给这个 SplashActivity 设置了 Theme 为:
android:theme="@android:style/Theme.Translucent.NoTitleBar"
设置这个主题是为了解决 App启动白屏的问题。
但是Android8.0下,透明主题的Activity是不可以设置方向的,但是我又设置了方向,所以会引发这个异常。
可以看到我主题透明的同时也设置了方向。因此异常就产生了,直接闪退。
找到设置的主题,然后在这个主题的style文件中添加下面一个item设置即可:
- false
然后,定位到AppTheme资源文件中,添加上面的item设置,如图:
重新运行后不会闪退了。亲测有效!
A little bit of progress every day!Come on!