[bug反馈]:3.5.2 安卓切换横竖屏偶现闪退

  • Creator 版本: 3.5.2

  • 目标平台: Android

  • 重现方式:调用原生横竖屏切换代码后偶现闪退

// 原生代码
   public static void changeOrientation(final int orientation) {
        // Here be sure to use runOnUiThread
        helper.activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // 0横,1竖,6横,7竖
                helper.activity.setRequestedOrientation(orientation);
            }
        });
    }
  • 首个报错:

  • 之前哪个版本是正常的:

  • 手机型号: 华为 meta20

  • 手机浏览器:

  • 编辑器操作系统:

  • 重现概率: 偶现,低端机测试

还有人遇到过吗?

没有 华为mate20 这个机型的设备,使用 华为mate10 pro 测试一直没复现,有其他机型可以复现的吗?
有报错信息吗?

bug.zip (14.0 KB)

上面是AS报错信息,第二次升级引擎版本泡汤了
第一次;3.3.2 到 3.4.2,低端机黑屏
第二次:3.3.2 到 3.5.2,切换横竖屏偶现闪退,概率还比较高

这是 ts 代码,最终定位在这个函数

/** 设置竖屏 1或7 */
    setPortrait() {
        if (sys.isNative && sys.os === this.ISOAndroid) {
            jsb.reflection.callStaticMethod('com/cocos/game/AndroidHelper', 'changeOrientation', '(I)V', 1);
        } else if (sys.isNative && sys.os === this.IOS) {
            // jsb.reflection.callStaticMethod("IOSHelper", "changeOrientation:", 1);
        } else {
            view.setOrientation(macro.ORIENTATION_PORTRAIT);
        }
        if (!JSB) {
            let width =
                view.getFrameSize().height > view.getFrameSize().width
                    ? view.getFrameSize().width
                    : view.getFrameSize().height;
            let height =
                view.getFrameSize().height < view.getFrameSize().width
                    ? view.getFrameSize().width
                    : view.getFrameSize().height;
            view.setFrameSize(width, height);
        }
        view.setDesignResolutionSize(750, 1624, ResolutionPolicy.UNKNOWN);
        // director.dispatchEvent(new EventCustom('resize', true));
        let node = director.getScene()?.getChildByName('Canvas');
        const widget = node.getComponent(Widget);
        if (widget) {
            widget.updateAlignment();
        }
    }

这个问题在不同机型出现概率不一样,我说的机型是公司测试机出现概率最高的一个,通常是在横屏停留两分钟再切换竖屏就出现了

Creator3.4.0_2D_ScreenSwitch.zip (101.8 KB)
方便试下这个demo? 跑了一会还是没复现

我也遇到同样的问题,类似的bug日志。解决了没有咧?