前文说过使用符号表可以解析 libunity 等 so 库的调用堆栈,但对于开启引擎代码裁剪的 IL2CPP 正式包来说,符号表的 Build Id 与 apk 内的 so 库是不一致的。 示例 以下是某 Unity 游戏的 CRASH 日志,可见其打包版本为 Unity 2020.3.12f1(b3b2c6512326),正式包,且是一个 32 位 il2cpp 包。 CRA

想细细研究下 native engine object,发现之前理解有误,不过 Unity 到最后也没说清楚,所以标题从探究换成了碎碎念。 前排提醒:本文主要内容为个人思考,未精细排版,且少图多字,观感不佳。 如果你是搜索引擎过来的,建议直接跳转到重新理解原生引擎对象标题处 起因 在 RenderTexture.Release 的文档中,Unity 官方有这么一句: 我从用 U

线上崩溃统计日志中经常出现一个空指针崩溃问题,关键词为 signal 11(SIGSEGV),code 1(SEGV_MAPERR),fault addr 00000000,调用链指向 libunity.so。 问题 虽然崩溃时调用链指向了 libunity.so,但具体执行了啥,调用的是哪个方法,根本无从下手,例如下面的日志,你根本不知道 libunity.00966c68

最近在搞一个帧同步的 Demo,涉及到网络消息转发。之前内网版 Demo 使用 String + Protobuf 二次封装发送消息,而公网带宽和流量都要钱,有必要压缩下。 LZMA、GZip 与 LZF 三种压缩算法的优缺点: LZMA:7z 默认的压缩算法,压缩率较高,但是时间很长; GZip:压缩率较 LZMA 低,但时间略短,常用于 Web 服务器与浏览器通信; LZF

偶然遇到的 Bug,和 Android 同学对完接口后,在进行某个操作时,总会触发安卓系统 ANR 弹窗:“xxx无响应”,而后经常出现 Unity Crash。 ANR 是啥 ANR 是一种 Android 系统中的错误类型,当应用程序的界面线程处于阻塞状态的时间过长,将会触发此错误,并出现 ANR 对话框:“xxx无响应,要将其关闭吗”。 以下两种情况会触发 ANR: 当您