zoukankan      html  css  js  c++  java
  • Only fullscreen activities can request orientation

    问题

    当我们把targetSdkVersion升级到27,buildToolsVersion和相关的support library升级到27.0.2后,在Android 8.0(API level 26)上,Activity出现了一个莫名其妙的crash,异常信息如下:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.xxx/com.xxx.xxx.WelcomeActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation
    
    原因

    这个问题出现在Api 26上,抛出异常的代码:

    if (ActivityInfo.isFixedOrientation(requestedOrientation) 
        && !fullscreen
        && appInfo.targetSdkVersion >= O) {
        throw new IllegalStateException("Only fullscreen activities can request orientation");
    }
    

    意思就是只有不透明的全屏activity可以自主设置界面方向。我们的启动页面Activity在style设置和在Manifset.xml设置下面属性导致抛出异常。

    <item name="android:windowIsTranslucent">true</item>
    android:screenOrientation="portrait"
    
    修复

    删除AndroidManifest中相应Activity的 android:screenOrientation=""属性;或者删除相应Activity的theme中true属性。但如果想保留screenOrientation,那么需要去除启动页白屏和黑屏的效果。

  • 相关阅读:
    Java读写配置文件prop.properties
    java中int转String 固定位数 不足补零
    plantix插件工具,eclipse工具
    MongoDB API java的使用
    CSS定位细节
    Mysql 基于BinaryLog的复制
    Mysql之复制服务
    Linux 中文乱码问题解决
    Maven中手动引用第三方jar包
    innodb之超时参数配置
  • 原文地址:https://www.cnblogs.com/fomin/p/8693663.html
Copyright © 2011-2022 走看看