java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

新版本开发,将 TARGET_SDK_VERSION 从 26 改成了 27,在 Android 6.0/7.0/8.1 手机测试没问题;

一发布崩溃日志接踵而来,全都是 Android 8.0 手机,简直疯了~

紧急修复:在 AndroidManifest.xml 将特殊的几个Activity的 portrait 配置删除

<activity
    android:name=".ui.SplashActivity"
    android:screenOrientation="portrait"(删除)/>

查找原因

这个异常大概意思是说:不是全屏的情况不能设置横竖屏?其实是组合的情况才会崩溃:

targetSdkVersion = 27
android:windowIsTranslucent = true
android:windowFullscreen = false
android:screenOrientation ="portrait"

偏偏我真的是这样设置的~

所以避开这种组合情况就行了~~

谷歌的理由

Google throw this exception on Activity onCreate method after v27, their meaning is : if a Activity is translucent or floating, it’s orientation should be relied on parent(background) Activiy, can’t make decision on itself.

发表评论

电子邮件地址不会被公开。 必填项已用*标注