比如打开proguard,编译通过,但安装后运行出错,如何定位错误原因?
报的都是.a.c.b之类无法定位的东西。
在生成的mapping.txt里边一个个对照着找了,我一般不混淆关键类的名称比如Activity和Service,报错的时候就能定位到对应的类上,再根据混淆的名称找到对应的被混淆类。打个比方,收到的报错信息有void com.company.app.util.c.a(java.lang.String, java.lang.String),需要去mapping中搜索com.company.app.util.c,然后找到有“->a”结尾,void型方法,大致上就可以确定是哪个方法出现的错误,我一般找到这里就大致反推一下是哪个地方会引发这个错误,尝试修复看看之后的版本还是否存在这个错误,还有的话就继续修。
在生成的mapping.txt里边一个个对照着找了,我一般不混淆关键类的名称比如Activity和Service,报错的时候就能定位到对应的类上,再根据混淆的名称找到对应的被混淆类。
打个比方,收到的报错信息有void com.company.app.util.c.a(java.lang.String, java.lang.String),需要去mapping中搜索com.company.app.util.c,然后找到有“->a”结尾,void型方法,大致上就可以确定是哪个方法出现的错误,我一般找到这里就大致反推一下是哪个地方会引发这个错误,尝试修复看看之后的版本还是否存在这个错误,还有的话就继续修。