在开启混淆编译完成后,测试apk发现异常,通过日志分析发现使用ARouter跳转的Activity中,@Autowired标准的变量未注入成功,上github查看arouter文档,发现在app/proguard-rules.pro添加一下规则就可以修复这个问题:
# ARouter
-keep public class com.alibaba.android.arouter.routes.**{*;}
-keep public class com.alibaba.android.arouter.facade.**{*;}
-keep class * implements com.alibaba.android.arouter.facade.template.ISyringe{*;}
# 如果使用了 byType 的方式获取 Service,需添加下面规则,保护接口
-keep interface * implements com.alibaba.android.arouter.facade.template.IProvider
# 如果使用了 单类注入,即不定义接口实现 IProvider,需添加下面规则,保护实现
-keep class * implements com.alibaba.android.arouter.facade.template.IProvider