发现只要旋转 就会闪退 和这个代码无关 项目是升级上来的 不知道如何排查
屏幕选择把横竖屏都选上试一下
看论坛 好像从3.7 开始就有这个问题 一直没有修复… 叹气
我记得3.7.3是修复的,后面的没试过了
pr我看了 引擎修改补丁还在 问题依旧
看看是不是我改的地方 但是我修复的问题也不是必闪退 只是概率很高的闪退 旋转多了基本就闪退了
太严重了。
这么基础, 需求也多的功能, 引擎团队应该重视一下
changeOrientation 这个你这边是如何触发的呢;如果是必现的,是否可以提供demo以及复现步骤?
这个问题还是存在于3.8.4中。我在ts中调用安卓的这个://切换横竖屏
public static void setOrientation(String dir){
if (_instance == null || _instance.isFinishing() || _instance.isDestroyed()) {
Log.e(“AppActivity”, “Invalid activity instance!”);
return;
}
try {
_instance.runOnUiThread(() -> {
new Handler().postDelayed(() -> {
try {
if ("H".equals(dir)) {
_instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
} else if ("V".equals(dir)) {
_instance.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
}
} catch (Exception e) {
Log.e("AppActivity", "Failed to set orientation: " + e.getMessage());
e.printStackTrace();
}
}, 100); // 延迟 100 毫秒切换
});
} catch (Exception e) {
Log.e("AppActivity", "Error in setOrientation: " + e.getMessage());
e.printStackTrace();
}
}切换横竖屏代码。必定闪退。我的游戏发布的时候,是勾选为竖屏的,进子游戏的时候,我想改变屏幕为横屏。调用这段代码刚开始的确是短暂横屏了,但是闪了一下,就闪退了。
好,我上传个简单的demo
这奇了怪了,我新建一个3.8.4空项目,调用安卓这个竖屏转变横屏的没问题。但是我自己的项目调用这个就闪退报错了,纳了闷了。我把我的项目上传试试
我的项目之前是在3.8.3建立的,后来升级到了3.8.4。以前没试过切换横屏。在3.8.4切换横屏的时候,发现崩溃。我把我的最简项目上传了,直接打包安卓就可,我的NDK版本:android-ndk-r23.2.8568313,谷歌云端:https://drive.google.com/file/d/1-3cAc7hiUh_kZsqJvSkOz7DEO-TafhBM/view?usp=drive_link
申请访问了,建议你先检查 androidManifest.xml configuratation的配置,是否有类似384类似的配置?
没有,我把崩溃的安卓的AndroidManifest.xml复制到新创建的3.8.4项目中,AndroidManifest.xml完全一样,但是新项目也不会崩溃。
给你添加权限了
问题的本质是使用端问题,请使用到native的方法前,先看下对应的接口在其他java文件是如何使用的;出现问题先用debug版本看下可能的问题,不要没定位,看到崩溃就说是引擎的问题。
比如当前崩溃的堆栈:
CocosHelper.runOnGameThread(() -> {
CocosJavascriptJavaBridge.evalString(str);
});
你项目中对引擎的使用是不一样的
找到问题了,是onResume和onPause()这俩里边加的有问题
,谢谢

