(转载)http://blog.csdn.net/qq_28484355/article/details/79125651
上周末升级了最新的MIUI 8.1.18开发版,早早的吃上了奥利奥 Android O(虽然在miui下并没有什么变化(-_-),但还是很开心的,毕竟我的小米MIX2终于可以用到了之前只是内测的全屏手势操作)。
用了两天还行,但今天在运行公司的app时,出现了应用崩溃的问题,看一下报错信息,
Caused by: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
字面意思就是说:只有不透明的全屏activity可以自主设置界面方向。
网上搜了搜,发现不是个例,这个问题出现在android8.0以上。原因是我们给Activity同时设置了 android:screenOrientation="" 和 <item name="android:windowIsTranslucent">true</item>。
没办法,解决适配呗(-_-)。
解决办法:删除AndroidManifest中相应Activity的 android:screenOrientation=""属性;或者删除相应Activity的theme中<item name="android:windowIsTranslucent">true</item>属性。
二者只留其一,若两种效果都需要,只能另辟蹊径了。
//-----------------------------------------------------------------------
values-26目录下,新建styles.xml做一个适配,估计不就这个问题就会得到解决。
<resources>
<style name="FullScreen" parent="AppTheme">
<item name="android:windowActionBar">false</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
<!-- 适配android手机系统8.0(api26),Only fullscreen opaque activities can request orientation -->
<!--用背景图消除启动白屏-->
<item name="android:windowIsTranslucent">false</item>
</style>
</resources>