AndroidSdk开发,混淆后的代码出现bug后怎么找到bug位置

我们在开发Android应用时,为了代码的安全往往要混淆代码,以防止代码被修改。混淆是好事,但是这往往也导致出现bug时,报错是一大堆abcd之类的路径。很难真正找到错误的位置所在。

所以开发工具也考虑到了这一点,会给我们生成一张映射对照表,对照表里面是混淆之前和混淆之后代码的对应关系。

我们在给sdk jar包混淆时,往往用的是proguard工具。

        那么首先要在混淆之前,先配置映射表的生成路径

-injars 'E:\Lee\SDK\Output\sdk1.jar'    //需要混淆的jar包
-outjars 'E:\Lee\SDK\Output\sdk.jar'  //混淆之后生成jar包的路径


-libraryjars 'E:\Lee\adt-bundle-windows-x86_64-20140624\adt-bundle-windows-x86_64-20140624\sdk\platforms\Android-20\android.jar'  //adt路径
-libraryjars 'D:\Program Files\Java\jre1.8.0_73\lib\rt.jar'                           //java路径
-libraryjars 'D:\workspace\SDKPatch\libs\android-support-v4.jar'            //项目的引用jar包

-keepattributes *Annotation*
-dontwarn


-printmapping 'E:\Lee\SDK\Output\mapping.txt'  //生成mapping映射表


-keep public class * extends android.app.Activity //禁止混淆的类



-keep class com.sdk.patch.manager.PageManager {//禁止混淆的类
    public <fields>;
    public <methods>;
}


-keep class com.sdk.patch.callback.** {//禁止混淆的目录
    <fields>;
    <methods>;
}


# Keep names - Native method names. Keep all native class/method names.
-keepclasseswithmembers,allowshrinking class * {
    native <methods>;
}

       

如上面红色的代码,执行完混淆操作之后,就会生成mapping.text文件,这就是映射对照表



然后打开ProguardGui,点击 按钮1 Retrace,选后在2箭头处选择mapping文件,最后在3空白处填写控制台的bug输出内容,然后点击4按钮,就会出现对应原来代码的位置。

注意:填写报错内容时,要去掉多余信息,只保留错误信息,如下

java.io.IOException: Can't read [dummy.jar] (No such file or directory)
	at proguard.y.a(Unknown Source)
	at proguard.y.a(Unknown Source)
	at proguard.y.a(Unknown Source)
	at proguard.y.a(Unknown Source)
	at proguard.ProGuard.c(Unknown Source)
	at proguard.ProGuard.a(Unknown Source)
	at proguard.ProGuard.main(Unknown Source)
Caused by: java.io.IOException: No such file or directory
	at proguard.d.q.a(Unknown Source)
	... 7 more





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

闽农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值