这篇文章主要讲本人在使用组件化开发的时候遇到的坑和解决方法。
一、Butterknife 在多module中的使用报错

在多module中使用报错
官方给出的解决方法

官方的建议
具体解决步骤:
1、在每个module的build.gradle中加上

添加插件
2、在基类module(我这边将公共的部分抽取了一个BaseModule,供其他业务module依赖)添加如下依赖

BaseModule添加依赖
3、业务module添加如下依赖

业务module添加依赖
4、用ButterKnife的插件注入依赖,将R改为R2,将switch改为if/else


补充:当module作为一个library运行时将R改为R2,当module作为一个Application运行时不需要将R2改回R
二、使用ARouter跨模块跳转页面时不能跳转
解决方法:加上如下代码


三、使用组件化开发有多个module,混淆打包的时候怎样指定规则和忽略混淆
对于上述问题有两种方式:
方式一:统一在app的proguard-rules.pro中配置,这样就存在一个问题,当不依赖有些业务module的时候,有写混淆规则就没必要加进去了
方式二:在app中的proguard-rules.pro中配置基本的混淆规则,然后业务module配置额外的混淆规则,例如

BaseModule添加

app中添加
补充:
1、如果在app中的build.gradle中开启混淆,其他module不开启,其他module也会混淆
2、module中指定编写混淆规则的文件,应该是consumerProguardFiles
