Proguard混淆之后行数LineNumber对不上

         问题描述:项目开了混淆之后,发现android app 崩溃之后,堆栈里面显示代码行数对应不上。

         问题解决:1、android gradle高版本,使用的是R8混淆,就是会看不到真实行数。如何确认是不是R8混淆,打开混淆生成的map文件(类似mapping.txt或者map.txt),如果是

R8,就会有这个

# compiler: R8

如果是R8,就没法直接在日志里面看到真实行数。

                        2、如果是使用友盟之类的日志平台抓取崩溃日志,只需要把map文件,上传到平台就可以看到对应代码行数。

                        3、如何在本地查看,在你android SDK的目录下的(Sdk\tools\proguard\bin)有一个proguardguixx的,点击之后,出现界面。

选择ReTrace,选择map文件,粘贴上需要解析的堆栈代码(贴at 开头哪些),然后ReTrace,就会在界面上看到结果。

                        4、如果在第三步解析出来了代码,但是代码行数没有改变,有可能是SDK里面的Proguard版本有点问题。可以尝试从github上面下载一个最新版本(https://github.com/Guardsquare/proguard/releases)

随便找个地方,解压一下,进入到目录里面,按照步骤3操作一下。

上一篇:Android自定义View实现翻页效果


下一篇:2021-09-07 第三周