我从崩溃报告系统获得了堆栈跟踪,它被混淆了,就像
... 解析失败:Lru/test/c/b/a; ...
我有一个映射文件。
如何使用mapping.txt对该堆栈跟踪进行反混淆?
从应用程序页面获取反混淆的崩溃堆栈跟踪
按照以下步骤将您的mapping.txt上传到您的应用PlayStore页面:
执行此操作后,查看反混淆的崩溃堆栈跟踪:
您可以查看此链接了解更多详情。
对一段堆栈跟踪进行反混淆
要自行转换代码,请使用 retrace 脚本(Windows 上为 retrace.bat;Mac/Linux 上为 retrace.sh)。它位于
~/Android/sdk/tools/proguard/bin/
目录中。该脚本采用mapping.txt 文件和堆栈跟踪,生成一个新的、可读的堆栈跟踪。使用 retrace 工具的语法是:
retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
我们可以使用pro-guard工具来回溯:
首先从以下位置获取映射文件
<project-path>app/build/outputs/mapping/flavor/release/mapping.txt
从以下位置找到 proguard 工具,即“proguardgui”
<your-computer-name>/AppData/Local/Android/SDK/tools/proguard/lib
然后你会得到
proguardgui.jar
在 Mac 上:
/Users/<your computer name>/Library/Android/sdk/tools/proguard/lib
通过使用终端
java -jar /Users/<your computer name>/Library/Android/sdk/tools/proguard/lib/proguardgui.jar
现在单击左侧菜单侧的“回溯”选项以获取以下窗口,从上述位置浏览您的
mapping.txt
文件,并在模糊的堆栈跟踪窗口中添加堆栈跟踪错误日志,然后单击 ReTrace
按钮获取去混淆的错误报告。
还有另一种自动使用 Google Play 商店的方法 控制台。
另一种选择(对我有用)。
位置:C:\Program Files\Android\Android Studio\jre 中(java.exe 在这里)
添加Sdk ools\proguard\lib中的文件:
proguard.jar
retrace.jar
添加您的mapping.txt 和堆栈跟踪文件
创建一个包含以下行的bat文件:
java -jar retrace.jar -verbose 映射.txt 堆栈跟踪
暂停
运行它。