android opaque,Android 8.0系统 Only fullscreen opaque activities can request orientation

android opaque,Android 8.0系统 Only fullscreen opaque activities can request orientation最近在华为 8 0 系统的手机中遇到 Onlyfullscre java lang IllegalState Onlyfullscre app Activity on

最近在华为8.0系统的手机中遇到Only fullscreen opaque activities can request orientation

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

at android.app.Activity.onCreate(Activity.java:1081)

at androidx.core.app.ComponentActivity.onCreate(ComponentActivity.java:85)

at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:149)

at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:313)

at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:106)

at com.secoo.commonsdk.components.TrackableActivity.onCreate(TrackableActivity.kt:45)

at com.secoo.commonsdk.arms.base.BaseActivity.onCreate(BaseActivity.java:124)

at com.secoo.livevod.live.activity.LiveMoreDrawActivity.onCreate(LiveMoreDrawActivity.kt:48)

at android.app.Activity.performCreate(Activity.java:7383)

at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1218)

at com.qiyukf.unicorn.m.a.callActivityOnCreate(QiyuInstrumentation.java:258)

at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3256)

at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3411)

at android.app.ActivityThread.-wrap12(Unknown Source:0)

at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994)

at android.os.Handler.dispatchMessage(Handler.java:108)

at android.os.Looper.loop(Looper.java:166)

at android.app.ActivityThread.main(ActivityThread.java:7529)

at java.lang.reflect.Method.invoke(Native Method)

at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)

at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

一、 出现的场景

Android 8.0

Activity透明

targetSdkVersion 27

二、解决方法

第一种解决方法

移除manifest中的Activity对应的android:screenOrientation=”portrait”

如果需要使用android:screenOrientation=”portrait”则可在对应的Activity的onCreate中添加:

//android O fix bug orientation

if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}

第二种解决方法

1.找到你设置透明的Activity,然后在他的theme中将android:windowIsTranslucent改为false

eg:false

再加入true就搞定了。

三、原因(源码中寻找)

3.1 、 ActivityRecord#setRequestedOrientation

788cceaf66e2

1.jpeg

有几个条件:

非全屏!fullscreen

targetSdkVersion的设置为大于26 appInfo.targetSdkVersion > O

ActivityInfo.isFixedOrientation(requestedOrientation)

所以下边来跟踪一下ActivityInfo.isFixedOrientation(requestedOrientation)

3.2 、跟踪ActivityInfo.isFixedOrientation(requestedOrientation)

788cceaf66e2

2.png

继续跟踪isFixedOrientationPortrait(int orientation)

788cceaf66e2

3.png

最后的原因找到了是因为orientation == SCREEN_ORIENTATION_PORTRAIT

这种情况下,透明Activity使用的是栈中,上一层可见Activity的orientation设定

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224543.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:42
下一篇 2026年3月17日 上午11:42


相关推荐

  • hash算法和hash一致性_分布式一致性hash

    hash算法和hash一致性_分布式一致性hash一致性哈希算法(ConsistentHashing)最早在论文《ConsistentHashingandRandomTrees:DistributedCachingProtocolsforRelievingHotSpotsontheWorldWideWeb》中被提出。简单来说,一致性哈希将整个哈希值空间组织成一个虚拟的圆环,如假设某哈希函数H的值空间为0-2^

    2022年10月5日
    17
  • CRC在线校验工具计算器

    CRC在线校验工具计算器CRC 在线校验工具计算器 http www metools info code c15 html

    2026年3月16日
    2
  • C++实现矩阵类(附代码和功能)

    C++实现矩阵类(附代码和功能)本文由两部分组成,第一部分介绍一个在win10系统上运行的exe程序,第二部分介绍通过C++实现矩阵运算的方法(功能会更强大,但不如exe文件操作方便)。用户界面如下,能够实现矩阵的加、减、乘、除运算,以及矩阵的转置,求逆,求行列式的值等。读者可以在下载该程序,直接在自己的电脑上运行。下载地址:https://download.csdn.net/do…

    2022年6月28日
    29
  • 0x00000116蓝屏解决方案_centos7重启服务器命令

    0x00000116蓝屏解决方案_centos7重启服务器命令Twowaystofixtheissuewithkernel-3.10.0-327*):-forinstalledsystem:-bootwiththeinitcall_blacklist=clocksource_done_bootingkernelparameteradded(orrebootonpreviouskernel)-onc

    2025年9月4日
    8
  • Centos防火墙开放端口

    Centos防火墙开放端口今天在服务器上启动了一个http服务,代码中绑定的端口号是9706,没有绑定IP。但是出现了一个问题,就是服务只能在本地访问,在别的机器上访问不了。在别的机器上telnet这个端口也是不通的,如下(ip脱敏处理了):$telnet<server-ip>9707Trying<server-ip>…telnet:connecttoaddress<server-ip>:Connectionrefusedtelnet:Unabletoc

    2022年6月16日
    33
  • Python一.Python安装及环境配置(完整教程)「建议收藏」

    Python一.Python安装及环境配置(完整教程)「建议收藏」Windowns操作系统中安装Python一.下载Python1.python官网:https://www.python.org/downloads/下载安装包2.选择版本我这里用安装版(64位)二.双击安装1.这里勾选安装并添加到PAHT,下一步。一直默认就可以安装完成2、查看环境变量是否有python的环境变量在命令窗口输入python-V回车如果出现python版本,那么恭喜…

    2022年5月31日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号