Didn't find class "android.view.View$OnUnhandledKeyEventListener"

Android 新导入的项目,报错:


 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.rikkathewrold.rikkamusic/com.rikkathewrold.rikkamusic.login.mvp.view.SelectLoginActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

Only fullscreen activities can request orientation

解决方法
添加屏幕方向和透明度设置

BaseActivity一次性添加。或者在各个activity分别添加
工具方法

private boolean fixOrientation(){
    try {
        Field field = Activity.class.getDeclaredField("mActivityInfo");
        field.setAccessible(true);
        ActivityInfo o = (ActivityInfo)field.get(this);
        o.screenOrientation = -1;
        field.setAccessible(false);
        return true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

private boolean isTranslucentOrFloating(){
    boolean isTranslucentOrFloating = false;
    try {
        int [] styleableRes = (int[]) Class.forName("com.android.internal.R$styleable").getField("Window").get(null);
        final TypedArray ta = obtainStyledAttributes(styleableRes);
        Method m = ActivityInfo.class.getMethod("isTranslucentOrFloating", TypedArray.class);
        m.setAccessible(true);
        isTranslucentOrFloating = (boolean)m.invoke(null, ta);
        m.setAccessible(false);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return isTranslucentOrFloating;
}


在super.onCreate(savedInstanceState);    方法前添加设置方法


@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
    if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O && isTranslucentOrFloating()) {
        boolean result = fixOrientation();

    }

    super.onCreate(savedInstanceState);
 

附:

@Override
public void setRequestedOrientation(int requestedOrientation) {
    if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O && isTranslucentOrFloating()) {

        return;
    }
    super.setRequestedOrientation(requestedOrientation);
}
 

发布了339 篇原创文章 · 获赞 66 · 访问量 36万+

猜你喜欢

转载自blog.csdn.net/meixi_android/article/details/102746356