首页 昆明信息港 下载客户端 关于彩龙 论坛须知

Android 8.0透明Activity报错 "Only fulls

最近在梳理我们的《彩龙社区》APP的过程中,发现8.0的手机几种爆发了一个很严重的bug:

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

bugly中的报错截图如下(为保证产品安全,核心代码结构已经隐藏,请见谅):


通过字面意思,简单的说就是,在启动页面的时候,非法的设置了屏幕方向而导致了这个报错,可是,我们并没有在代码中设置任何东西。

然后网上查阅资料,发现

google出于安全的考虑,对android8.0以后的版本做的处理,当一个Activity固定方向并且是透明的,在8.0以后的版本中就会抛出异常。相关源码如下:


上面是27的源码片段,通过上面我们可以看出当三个条件同时满足的时候,系统会抛出”Only fullscreen activities can request orientation”异常。先分别来说说这三个条件都表示什么意思:

ActivityInfo.isFixedOrientation(requestedOrientation) —— 表示判断当前的|Activity是否固定了方向

fullscreen —— 表示Activity是否是透明的或者是否悬浮在Activity上,是透明的或者悬浮在Activity上fullscreen就等于false

appInfo.targetSdkVersion >= O —— 表示版本号大于等于26

当以上的三个条件同时满足的时候,系统框架就会抛出异常。针对第一条和第三条,我们无能为力,所以只能针对性的对第二条进行处理和控制。

网友评论

0条评论

发表

网友评论

0条评论

发表

最新评论

推荐文章

彩龙

Copyright © 2008-2021 彩龙社区 版权所有 All Rights Reserved.

免责声明: 本网不承担任何由内容提供商提供的信息所引起的争议和法律责任。

经营许可证编号:滇B2-20090009-7

下载我家昆明APP 下载彩龙社区APP