Android开发手记之Native Crash
项目即将发版,测试人员在一台之前未测试的机器A上发现一个崩溃,而且是启动就崩溃,
关键崩溃日志还是native crash:
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1
r0 00000001 r1 12c26e2c r2 70db68b8 r3 00000000
r4 130ef070 r5 f2f34900 r6 131162e0 r7 00000001
r8 131f0c00 r9 f3006b00 sl 131f0d80 fp 00000001
ip 00009568 sp d72a2360 lr 73f3ac09 pc dd6d143e cpsr 000e0030
以前看到这样的日志,一般都扔给系统组去找,但这次不一样,每次都崩溃。
1.用给测试人员的包,在测试机器A验证了下确实崩溃,但其他机器不崩溃。
2.本地自己编译了一个debug版本,在测试机器A上运行,竟然没有崩溃。
可以确定是混淆有问题了,至于为啥其他机器没问题,确实很奇怪。
3.打LOG,确定崩溃地点。--- 启动的时候运行的代码,进行二分查找。
最终确定push那个模块有问题,额外进行深入,发现是接入的Oppo模块有问题,
上网找资料和分析SDK中的代码,加混淆配置。
解决。
总结:
遇到的native crash 不要怕,尤其是必现的,最坏的情况下是对特定版本、机型移除这个模块。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2012-09-18 如何联机调试Android System App