混淆,相信只要是上线的的应用都会运用到。这里记一下项目中因为混淆而导致的一个较难发现的问题。
问题是这样的:有一个实体类PrintTemplate
类,当我调用一个网络接口,会从服务器获取这个类的一个 list,然后我会用 Json 转成字符串存到本地,当要用的时候根据 key 去取对应的模板字符串,然后转成类实体进行使用。当然,混淆规则中没有保持这个类不被混淆。
假设现在的版本是 V1.0,测试打出来的 Release 包是没有问题的。然后版本更新到 V1.1,单独测试也是没问题的。但是,如果是从 V1.0 升到的 V1.1,那么在取对应的模板字符串,然后转成类实体进行使用
这一步就会出错了,无法解析到正常的类。如果没有添加异常保护,则会直接崩溃了。