美文网首页
Only fullscreen activities can r

Only fullscreen activities can r

作者: 这个美嘉不姓陈 | 来源:发表于2018-07-18 10:22 被阅读0次

    https://zhuanlan.zhihu.com/p/32190223
    https://blog.csdn.net/youmangu/article/details/80678773

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

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.linkedin.android.XXXX.XXXX/com.linkedin.android.XXXX.XXXX.activity.LoginActivity}: java.lang.IllegalStateException: Only fullscreen activities can request orientation

    如果一个Activity的Style符合下面三个条件之一,认为不是“fullscreen”:

    “windowIsTranslucent”为true;
    “windowIsTranslucent”为false,但“windowSwipeToDismiss”为true;
    “windowIsFloating“为true;
    综上可见,这个改动的目的是想阻止非全屏的Activity锁定屏幕旋转,因为当前Activity是透明的,浮动的或可滑动取消的,是否锁屏应该由全屏的Activity决定,而不是并没有全部占据屏幕的Activity决定。

    解决办法:

    1.targetSdkVersion <=26 即可

    原因是sdk27版本使用:if targetSdkVersion is >=27 ( > android.os.Build.VERSION_CODES.O) you get this error, they have changed ActivityRecord in latest Android version adding this:

    void setRequestedOrientation(int requestedOrientation) { if (ActivityInfo.isFixedOrientation(requestedOrientation) && !fullscreen

                && appInfo.targetSdkVersion > O) {            throw new IllegalStateException("Only fullscreen activities can request orientation");        ....        }
    

    2.不需要使用坚屏的不要使用如下代码

    设置锁定坚屏setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 或者 android:screenOrientation="portrait"

    3.这种方式有点low 可是暂时过渡方案(判断版本号设置主题)

    //8.1不能使用透明主题

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

    this.setTheme(R.style.A);//不透明

        }else {
    

    this.setTheme(R.style.B);//透明主题

        }
    

    如果使用该方法:

    1.设置主题代码放在 onCreate方法中的

    super.onCreate(savedInstanceState);

    设置主题代码(setTheme)

    setContentView(R.layout.activity);

    2.manifest 中activity不要使用设置主题代码

    android:theme="@style/NoTitleDialog"

    相关文章

      网友评论

          本文标题:Only fullscreen activities can r

          本文链接:https://www.haomeiwen.com/subject/astopftx.html