在Android开发中我们经常会用到代码混淆, 但是如果这时候我们的app出现了崩溃, 返回的调用栈就比较麻烦,

不知道到底哪里有问题, 如下

at android.view.LayoutInflater.inflate(LayoutInflater.java:489)at android.view.LayoutInflater.inflate(LayoutInflater.java:396)at android.view.LayoutInflater.inflate(LayoutInflater.java:352)at android.view.View.inflate(View.java:16119)at com.tvmao.android.a.b.d(Unknown Source)at com.tvmao.android.a.b.getView(Unknown Source)at android.widget.HeaderViewListAdapter.getView(HeaderViewListAdapter.java:220)at android.widget.AbsListView.obtainView(AbsListView.java:2273)at android.widget.ListView.makeAndAddView(ListView.java:1769)at android.widget.ListView.fillDown(ListView.java:672)at android.widget.ListView.fillFromTop(ListView.java:733)

那么我们混淆的代码不能还原吗? 当然有, 其实谷歌已经为我们准备好了:

ProGuard 提供了命令行和 GUI 工具来还原混淆后的代码。

该工具位于 <android-sdk>/tools/proguard/bin/ 目录下。
里面的 proguardgui.bat 为 GUI 工具,
1) 运行 proguardgui.bat
2) 从左边的菜单选择 “ReTrace”
3) 在上面的 mapping 文件中选择你的 mapping 文件 ,在下面输入框输入要还原的代码
4) 点击 “ReTrace!” 按钮
retrace.bat 为命令行工具, 把 mapping 文件和 要还原的堆栈信息保存在 stacktrace 文件中,
然后把这两个文件复制到 retrace.bat 目录下,运行如下命令即可。

retrace.bat -verbose mapping.txt stacktrace.txt > out.txt

软件截图如下

从异常堆栈中还原 ProGuard 混淆过的代码相关推荐

  1. Android:如何从堆栈中还原ProGuard混淆后的代码

    本文翻译自Android: How To Decode ProGuard's Obfuscated Code From Stack Trace 本篇文章是写给那些在他们的应用中使用ProGuard并且 ...

  2. VAE逻辑整理及VAE在异常检测中的小实验(附代码)

    VAE逻辑整理及VAE在异常检测中的小实验(附代码) Variance和control variate 两种常见的分类器 相应代码 Minst数据集的训练和重构 KDD99数据  本文主要讲解一下整个 ...

  3. apk反编译(6)用ProGuard 混淆、压缩代码,压缩资源。

    1.android官方文档 https://developer.android.com/studio/build/shrink-code  主要内容如下: 1.1 压缩代码 混淆生成的文件:<m ...

  4. python自定义全局异常_flask中主动抛出异常及统一异常处理代码示例

    本文主要介绍的是flask中主动抛出异常及统一异常处理的相关内容,具体如下. 在开发时,后台出现异常 ,但不想把异常显示给用户或者要统一处理异常时,可以使用abort主动抛出异常,再捕获异常返回美化后 ...

  5. IDEA JDK1.8 ProGuard 混淆Maven项目代码

    直接复制到pom中即可使用 <build><plugins><plugin><groupId>com.github.wvengen</groupI ...

  6. iOS_异常堆栈报告分析

    在使用 Xcode 工具的开发过程中, 面对运行异常, 很多初学者往往毫无头绪, 不知道如何跟踪异常堆栈, 如何分析异常堆栈报告. 这里就给大家介绍如何<b>跟踪异常堆栈</b> ...

  7. 使用Retrace还原被ProGuard混淆后的崩溃堆栈

    AndroidSDK的tools中提供了混淆和还原的jar文件,当然也可以直接下载ProGuard相关的jar: http://sourceforge.net/projects/proguard/ 命 ...

  8. 安卓中ProGuard混淆基本使用

    1.  简介 因为Java代码是非常容易反编码的,为了很好的保护Java源代码,我们需要对编译好后的class文件进行混淆. ProGuard是一个用于Android开发用于混淆最终的项目,增加项目被 ...

  9. JVM解惑:消失的异常堆栈,log中打印异常堆栈为空

    最近线上发现很多异常没有堆栈信息,只有一句描述,如下: java.lang.NullPointerException: null 排查问题时受到了一些阻碍.然后发现无论是在本地环境还是测试环境,堆栈信 ...

最新文章

  1. SpringBoot如何自动生成实体类和Dao层以及映射文件(mybatis generator 自动生成代码)
  2. Linux 网页挂马实验,网页挂马详细教程
  3. java语言中的浮点型数据分为,Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float型和double型,其中dou...
  4. 脾气好的领导不是好领导
  5. OC无法进行多人会话
  6. 带你玩转JavaWeb开发之四 -如何用JS做登录注册页面校验
  7. kali 安装vmware 14 for linux 出现问题
  8. 如何合理封装你的轮子、飞机、大炮(以封装OkHttp为例)
  9. fanuc换刀宏程序详解_FANUC宏程序使用举例
  10. nodejs下载文件到本地并命名 和 删除文件
  11. 终端一直显示 (master) ,即终端一直处于master分支下的取消办法
  12. android camera2美颜,Nano Camera(多功能美颜相机)V2.1 安卓版
  13. 计算机函数if使用折扣率,excel1-服装采购表题目要求
  14. macOS上显示隐藏文件
  15. TCC(新加坡太一国际数字交易所):升值万倍的数字资产 成就多少亿万豪
  16. Hadoop——你不得不了解的大数据工具
  17. 《月薪5千与月薪5万的文案区别》!如何用立体思维去解决问题
  18. Javascript 书写规范
  19. 我的世界java1.15更新了什么动物_我的世界:原来1.15版本的更新“主题”不是蜜蜂,而是这些东西?...
  20. 抽奖摇号系统随机性算法介绍

热门文章

  1. 黑马程序员_JAVA相关基础知识
  2. 预测、迭代与优化:用AI探寻组合优化问题最优解
  3. MuleSoft知识总结-13.Mule组件(Set Variable,For Each,Choice)
  4. oracle如何删除一个用户下的所有数据?
  5. 各大android应用商店的展示权重 安卓应用商店关键词+下载量+评价+其他这几项占的权重(仅供参考)
  6. Mongodb 设置账号密码
  7. 21条最佳实践,全面保障 GitHub 使用安全
  8. macd的python代码同花顺_手把手教你妙用MACD指标
  9. 利用appimage工具对开发好的项目进行打包
  10. 爬虫基础(6)网页解析之XPath库