五一一个人,求组织,求关怀
这里讲的是apk混淆后出现的bug怎么确定bug地方,而不是因为混淆出现的错误。
apk进行混淆后,所有的类(除了-keep的)都变成了com.a.b.c的样子,一但出现了bug,log输出如下
- java.lang.NullPointerException
- at com.test.b.a.a(Unknown Source)
- at com.test.b.a.a.m(Unknown Source)
这个错误怎么定位啊?
细心的同学可能会发现在混淆后,工程中会增加一个proguard文件夹,如下图
一眼就看到了mapping.txt(map:映射的意思),它是多么的刺眼啊。对,mapping.txt中就存储了混淆的映射关系。将bug在mapping.txt中搜一下,就能定位到源码的具体位置。
注意:每次混淆打包后,这个文件都会被覆盖。所以当你发布新版本的时候,都需要拷贝相应版本的mappint.txt文件,以备日后解决bug用啊。
关于混淆后出现bug,也有人是把关键代码混淆,而不是全部混淆,这样能减少少bug查错的范围。最近有款apk加固软件叫“梆梆”,我在想如果用它加固后的apk,如果万一出现bug了,是怎么样的
同学们假期愉快,注意休息,对于Coder,身体才是我们最大的财富!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。