梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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 不要怕,尤其是必现的,最坏的情况下是对特定版本、机型移除这个模块。

 

posted on   梦书  阅读(307)  评论(0编辑  收藏  举报

编辑推荐:
· 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
点击右上角即可分享
微信分享提示