之前一直使用ButterKnife很好用也没有出现过什么问题,但是最近由于在写一个组件化项目,使用的时候还是踩了很多坑。这里我就单个Module这种项目以及组件化项目中的使用包括一些注意事项给分享一下,有什么错误或者不足,多多指教。
一 :普通项目(只有一个Module)
1.工程buidle.gradle
2.在Module的buidle.gradle中
二:组件化项目
1.工程下的buidle.gradle(8.4.0 8.5.0 8.5.1 都可以 )
2.在公共组件PublicLibrary中的buidle.gradle(其他子Module或者组件也这样写)
dependence中的依赖:
3.宿主Module的buidle.gradle
四.注意事项:
1. 宿主Module 直接快捷键生成即可
而PublicLibrary以及其他子Module需要把生成的R.id.×× 改成R2.id.×× ,当时会报红,但是buidle一下就可以了
2.子moudle中的不可以使用switch case,必须要用if else来的代替,否则空指针等其他问题。
3.在开发的时候,一般情况宿主Module以及子Module组件都是依赖PublicLibrary公共组件,但是不能因为依赖就把那些省略了,否则空指针报错。
4.还需要在设置里面安装一个插件:
5 AS 3.0 之后,annotationProcessor 代替了 android-apt。 子 moudle中的 butterknife 被主 module 使用,需要将 implementation 改为 api。 我当前使用的版本是3.1.2