这篇文章主要讲本人在使用组件化开发的时候遇到的坑和解决方法。
一、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
网友评论