[split_config.arm64_v8a.apk!libcocos2djs.so] v8::HandleScope::Initialize(v8::Isolate*)

如何验证能不能在16KB下运行,我的测试手机已经升级到android15了,游戏运行正常。

一、验证当前设备设置了 16KB 环境

二、不是所有 Android 15 的真机都设置了 16KB 环境

需要确保在发者模式中开启

三、不是所有 Android 15 的模拟器都设置了 16KB 环境

需要创建模拟器的时候,选择支持 16KB 环境的镜像

更多参考

https://developer.android.com/guide/practices/page-sizes?hl=zh-cn

1赞

我们将 NDK 升级到 28,google 提供的检查 so 的工具 sh 已经全部通过,使用 16KB 设备测试已不再闪退,但线上崩溃率还是很高,不过崩溃错误改变了,现在是:
[libcocos2djs.so] v8::internal::IsolateAllocator::InitReservation()

我们项目组用3.8.5开发的新游戏,crash率在0.21%。
用2.4.15开发的老游戏,crash率从年初的0.6%一路飙升,现在已经达到了1.4%,严重影响了游戏的各项指标。我们现在束手无策,也不知道怎么办。 :sob: :sob:

我们做了一个补丁,自己判定如果引擎发生二次启动时,就当做异常行为直接强制杀掉进程,崩溃率是下降了很多,anr略有上涨。但这个是最后不得已的办法,仅供参考。

我们做了16KB 对齐更新后,崩溃率也没有下降,没什么反应~

想请问一下,为什么这样做就可以使CRASH RATE 下降?以及可以分享补丁吗?感谢~!

我们很早就集成了Android15的16KB,所以我们的崩溃不是来源这里。我们主要来源两个点:

  1. 上面提到的Android15上调用cc.game.end()后,重启发生崩溃问题。上述已有方案。
  2. 引擎二次重启引起的崩溃,这个主要原因无法重现。我们测试了3.8.5版本,模拟二次启动时,没有发生崩溃。所以同步了3.8.5的ScriptEngine和V8启动的代码,做了一次测试,确实没有了引擎的崩溃,但是会出现其他的崩溃点,崩溃率并没有下降。由于项目紧急程度,必须先降低指标就没有继续测试,只在初始化引擎之前判定了引擎单例是否存在,存在就直接强制关闭进程的设定。

下图改完之后崩溃确实恢复到了以前

1赞

兄弟,你的app的crash率很优秀啊,是用coccos 什么版本开发的?

立项是 2.4.0,前几个月升级到 2.4.13。我们做的休闲游戏,体量小,没那么多复杂的系统。

3.7.2 版本 也遇到这个 ,在android 11,12,14,15 都都有出现,也加了16kb对齐,还是出现

v8 问题关联起来,这里有个从后台会来的

https://forum.cocos.org/t/topic/169221

1赞

能否分享一下代码?这样做是会强制重启吗?

求解决方案 急. 有偿!!!

求解决方案 急. 有偿!!! 复现:小米k80 调用 game.end() 之后 从 后台点击进入游戏 确认 会崩溃.
api35.

上面不是有了吗

哥们你用3.7.2可以支持android15?我用3.7.4cocos底层会报错。


我这个你有遇到过?

2.4.15 ndk r28。 同样遇到这个问题了,稳定复现就是卸包重装触发一个系统弹窗,侧边栏滑动切到后台,再打开app就重启报崩溃。底部上划切后台不行。

https://forum.cocos.org/t/topic/169420

战术mark

这些库哪里来的呢?想剔除它们

为什么要在初始化引擎的时候判断?在activity触发onDestory的时候直接把进程关闭,这样的话效果是不是与你的方案一样?