组件化开发遇到的坑

        这篇文章主要讲本人在使用组件化开发的时候遇到的坑和解决方法。

一、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

你可能感兴趣的:(组件化开发遇到的坑)