项目场景:
最近新接手二次开发的一个几年前的项目,一直在测试环境开发测试,没有任何问题,在发布到正式环境打release包的时候,出现异常,始终得不到正确的结果
问题描述:
由于是老项目,配置也没仔细研究,新的依赖库和工具库也是从公司另一个项目移植过去的,在测试环境下没有开启混淆,所以一直没有发现忘记配置混淆的问题,在最后发布正式版本的时候就出现了异常。我们是做海外用户的,在用户登录时会显示一个loading dialog,成功之后会去尝试恢复一次Google的订阅,恢复成功后采用的EventBus发送消息通知页面更新,关闭loading并且回到前一页面。Debug模式没有混淆正常,正式环境时,就出现一直loading。
原因分析:
仔细分析了配置,发现测试和正式环境区别就是混淆的开闭与否,然后修改正式环境不混淆,发现结果OK,定位问题为混淆引起的问题。这里再提一次我踩的坑,一直以为只是序列化的JavaBean类混淆出了问题,没有考虑到三方依赖库也是需要避免混淆的,所以建议在添加依赖库的时候一定一定一起把配置文件一起更新了。
解决方案:
更新了三方库和Ja