基于友盟U-APM解决客户小姐姐Android Native Crash问题,小姐姐说我真棒,要把她闺蜜介绍给我

简介: 客户小姐姐反馈一个Crash问题,但是概率很小,开发和测试都没遇到过。总不能让小姐姐帮忙抓取logcat日志。逼不得已,用上了杀手锏友盟+U-APM神器,重新给小姐姐更新了一版APK。然后,开瓶82年的冰阔落,坐等日志上来。

文章目录

·       一、遇到问题

·       二、Native日志分析

·       三、信号量(signal) 错误码(code)分析

·       四、PC指针addr2line定位

·  4.1 addr2line路径

·  4.2 so路径

·  4.3 addr2line查询

·       五、修改代码

·       六、后续~

一、遇到问题

客户小姐姐反馈一个Crash问题,但是概率很小,开发和测试都没遇到过。

总不能让小姐姐帮忙抓取logcat日志。

逼不得已,用上了杀手锏友盟+U-APM神器,重新给小姐姐更新了一版APK

然后,开瓶82年的冰阔落,坐等日志上来。

二、Native日志分析

来了来了,日志它来了。

乍看,有点慌。

这是大名鼎鼎的Native Crash啊。

这是隔壁C++组的锅啊,我就说像我这么资深的程序员,怎么可能写出这bug~

1.jpg

三、信号量(signal) 和 错误码(code)分析

不过,来都来了,看都看了,且再认真看看具体是哪里有bug~

点击全屏查看,一堆十六进制,咋看有点慌。

不过老司机带路,莫慌,翻开友盟的文档中心的Native崩溃说明

·       SIGSEGV,一个进程执行了一个无效的内存引用,或发生段错误。

·       SEGV_MAPERR,地址不在 /proc/self/map 映射中

看到这里,有点头绪咯,空指针段错误

跟着老司机,接着往下走,go~

2.jpg

3.jpg

哦.jpg

四、PC指针addr2line定位

4.1 addr2line路径

· 先找到ndk的路径,在local.properties

5.jpg

· 再找到addr2line

· 其中aarch64-linux-android-4.9arm-linux-androideabi-4.9都是可以的

6.jpg

4.2 so路径

7.jpg

4.3 addr2line查询

8.jpg

9.jpg

· 按照log的打印顺序,我们从下往上看,先执行cxa_demangle.cpp:309

· 但是,cxa_demangle是个啥东西呢

· 新的ABI委托执行C++运行库的入口

· 就是这个入口走错了?走到了空指针?

10.jpg

· 这时候重新在友盟+U-APM后台定睛一看,Java_com_umeng_crashdemo_MainActivity_stringFromJNI

· 那就先查它

11.jpg

五、修改代码

代码定位到这里来,一看代码,很简单啊

改改改!!!

12.jpg

13.jpg

六、后续~

重新打包个APK,发给客户小姐姐。

翘着二郎腿,再开一瓶冰阔落~

果不其然~

客户小姐姐很开心,说我真棒,要把她闺蜜介绍给我。

咦,我的春天来了~

我的嘴角不自觉扬起45°的微笑。

哎,醒醒,醒醒,要debug~~~




作者:康玮剑



相关实践学习
通过轻量消息队列(原MNS)主题HTTP订阅+ARMS实现自定义数据多渠道告警
本场景将自定义告警信息同时分发至多个通知渠道的需求,例如短信、电子邮件及钉钉群组等。通过采用轻量消息队列(原 MNS)的主题模型的HTTP订阅方式,并结合应用实时监控服务提供的自定义集成能力,使得您能够以简便的配置方式实现上述多渠道同步通知的功能。
相关文章
|
存储 JSON 监控
APM监控 · 入门篇 · Android端测监控平台建设(1)
APM 全称 Application Performance Management & Monitoring (应用性能管理/监控) 性能问题是导致 App 用户流失的罪魁祸首之一,如果用户在使用我们 App 的时候遇到诸如页面卡顿、响应速度慢、发热严重、流量电量消耗大等问题的时候,很可能就会卸载掉我们的 App。这也是我们在目前工作中面临的巨大挑战之一,尤其是低端机型。
4666 0
APM监控 · 入门篇 · Android端测监控平台建设(1)
|
存储 消息中间件 监控
|
数据采集 前端开发 Java
Android 友盟简单快速集成
Android 友盟简单快速集成
1036 0
Android 友盟简单快速集成
|
Java Android开发
Android 进行友盟多渠道打包步骤详解
Android 进行友盟多渠道打包步骤详解
492 0
|
缓存 编解码 监控
Android 移动应用性能优化 之 友盟
Android 移动应用性能优化 之 友盟
361 0
Android 移动应用性能优化 之 友盟
|
监控 开发工具 Android开发
Android Studio集成友盟SDK
在企业开发中往往会给开发人员提出很多的开发要求,如做商城APP的时候,产品经理希望统计某个商品的购买量,或者运营的同事要求你统计APP的启动数,新增客户量,有时候开发人员需要监控APP在用户手中的使用情况,这个时候我们就需要集成友盟SDK来帮助我们解决这些问题
418 0
|
XML 移动开发 JavaScript
h5开发之cordova/phonegap自定义组件调用android native代码
h5开发之cordova/phonegap自定义组件调用android native代码
2270 0
|
11月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1847 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
11月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1189 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
11月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
1244 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡

热门文章

最新文章