关于apk混淆后出现的bug查找
五一一个人,求组织,求关怀
这里讲的是apk混淆后出现的bug怎么确定bug地方,而不是因为混淆出现的错误。
apk进行混淆后,所有的类(除了-keep的)都变成了com.a.b.c的样子,一但出现了bug,log输出如下
java.lang.NullPointerExceptionatcom.test.b.a.a(UnknownSource)atcom.test.b.a.a.m(UnknownSource)
这个错误怎么定位啊?
细心的同学可能会发现在混淆后,工程中会增加一个proguard文件夹,如下图
一眼就看到了mapping.txt(map:映射的意思),它是多么的刺眼啊。对,mapping.txt中就存储了混淆的映射关系。将bug在mapping.txt中搜一下,就能定位到源码的具体位置。
注意:每次混淆打包后,这个文件都会被覆盖。所以当你发布新版本的时候,都需要拷贝相应版本的mappint.txt文件,以备日后解决bug用啊。
关于混淆后出现bug,也有人是把关键代码混淆,而不是全部混淆,这样能减少少bug查错的范围。最近有款apk加固软件叫“梆梆”,我在想如果用它加固后的apk,如果万一出现bug了,是怎么样的
同学们假期愉快,注意休息,对于Coder,身体才是我们最大的财富!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。