急急急!!!2.4.13创建的应用,谷歌后台崩溃率高达4.53%了,来个大佬帮忙看下啊

  • Creator 版本: 2.4.13

  • 目标平台:Android

  • 重现方式:

  • 首个报错: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    pid: 0, tid: 24925 >>> com.xx.xx <<<

backtrace:
#00 pc 0x000000000110352c /data/app/com.xx.xx-shJNohK4qJQ2SgPEa9nJ3Q==/base.apk!libcocos2djs.so (v8::base::OS::Abort()+24) (BuildId: 87909e3de9f68e016b08990d99347f8e2368ae78)
#01 pc 0x0000000001101fc8 /data/app/com.xx.xx-shJNohK4qJQ2SgPEa9nJ3Q==/base.apk!libcocos2djs.so (V8_Fatal(char const*, …)+372) (BuildId: 87909e3de9f68e016b08990d99347f8e2368ae78)
#02 pc 0x00000000011697a4 /data/app/com.xx.xx-shJNohK4qJQ2SgPEa9nJ3Q==/base.apk!libcocos2djs.so (BuildId: 87909e3de9f68e016b08990d99347f8e2368ae78)
#03 pc 0x0000000001165a8c /data/app/com.xx.xx-shJNohK4qJQ2SgPEa9nJ3Q==/base.apk!libcocos2djs.so (v8::internal::Builtin_ConsoleError(int, unsigned long*, v8::internal::Isolate*)+60) (BuildId: 87909e3de9f68e016b08990d99347f8e2368ae78)
#04 pc 0x000000000199d6a8 /data/app/com.xx.xx-shJNohK4qJQ2SgPEa9nJ3Q==/base.apk!libcocos2djs.so (BuildId: 87909e3de9f68e016b08990d99347f8e2368ae78)

console.error 触发了 V8 的 fatal error,导致进程直接 abort。这在 CocosCreator 2.4.x 使用的 V8 引擎版本中是一个已知问题——当 console.error 的参数包含某些无法序列化的对象(循环引用、native 对象、已释放的 JS 对象等)时,V8 内部会触发 fatal abort。

常见触发原因:

console.error(err) 传入了循环引用对象
传入了已经被 GC 或手动释放的 CC 节点/组件引用
传入了 native binding 对象(比如 cc.Node、cc.Component 的某些内部状态异常时)
在异步回调中访问了已销毁场景的对象后调用 console.error
排查方向:

全局搜索 console.error 调用,重点检查传入参数是否可能是复杂对象
用 try/catch 包裹可疑的 console.error,或者统一重写 console.error:
const _originalError = console.error.bind(console);
console.error = function(…args) {
try {
// 强制序列化,避免传入不安全对象
const safeArgs = args.map(a => {
try { return JSON.stringify(a) ?? String(a); }
catch { return String(a); }
});
_originalError(…safeArgs);
} catch(e) {
// 兜底,什么都不做
}
};
检查是否有第三方 SDK(广告、推送、支付)在 native 回调里触发了 JS 侧的 console.error
升级或 patch cocos 引擎的 jsb-adapter 层,看是否有对应修复

2赞