一、前言
随着项目版本的迭代,用户数量的迅速增长,app或多或少会出现bug。一般我们会使用友盟、Bugly、TalkingData等等统计工具来统计线上bug的情况。本篇文章主要阐述,如何从代码被混淆之后的错误日志中,来定位错误代码的博文。
二、统计工具之坑Mapping文件上限为10M
用过统计工具的同学应该知道,当线上App出现bug之后,我们会去统计工具“错误列表”的错误日志中寻找错误代码来源(不同统计工具中统计文案可能不同,此处以友盟为例)。上线之前大家都会对代码进行混淆及应用包加固等等操作,因此错误列表的错误日志会出现,错误日志无法定位的问题,如下图所示。
一般遇到此情况我们会到…./app/build/outputs/mapping/normal下找到Mapping.txt,将该文件上传来定位错误代码行数。但是随着版本迭代,Mapping.txt文件会逐渐增大,你可能在上传代码时会遇到以下情况:
Android自带查看混淆错误日志工具
出现以上问题,如何解决呢?按照经验来说,Google应该会提供工具来解决混淆的问题。于是查阅资料我发现原来Android studio是查看混淆错误日志工具,定位查找混淆代码的步骤如下所示(这里我以Mac为例):
第一步:查找proguardgui文件
1.在Android studio菜单栏中点击”File->Project Structure”或“File->Other Setting–>Project Structure”来找到SDK目录
2.使用命令行“cmd /Users/zhiqinggong/Library/Android/sdk” 或手动选择文件夹进入
补充mac中快速查找方式:选择访达中“前往->前往文件夹”输入“/Users/zhiqinggong/Library/Android/sdk”。
3.打开proguardgui文件
方法一:找到“sdk-> tools ->proguard-> bin->proguardgui.sh”文件,将该文件直接拖入终端中;
方法二:找到“sdk-> tools ->proguard-> lib->proguardgui.jar”文件,双击打开文件。
4.查看错误日志
1.点击“ReTrace”;
2.点击“Browse”,选中项目工程下…./app/build/outputs/mapping/normal/mapping.txt;
3.将错误日志中复制粘贴到“Obfuscated stack trace”下的内容区域中;
4.点击右下角“ReTrace!”,即可定位错误代码。