Kotlin集成Arouter
本文于 341 天之前发表,文中内容可能已经过时。
使用场景
为了软件间的解耦操作,确保模块之间
Activity的相互跳转不受影响。故引用阿里巴巴的Arouter。但官网上还没有针对Kotlin的集成说明,故在此记录下来
如何使用
gradle配置- 目录配置,常量类配置
- 在
Application中进行Arouter初始化 Activity的配置
1. gradle配置
注意需要在两个地方进行配置
1.根目录下的build.gradle中配置,在dependencies中增加arouter-register引用
1 | dependencies { |
2.在模块所在的build.gradle中添加引用及编译配置
1 | plugins { |
注意:此处的与官网教程不一样。官网的配置是针对java的,所以我没有使用javaCompileOptions和annotationProcessor'com.alibaba:arouter-compiler:1.5.1'这两个配置对kotlin不生效。
2. 目录配置,常量类配置
新建一个ui包用于存放需要跳转的Activity,随后新建一个Constant的Object文件。添加Activity的常量资源
常量类Constants
1 | object Constants { |
目录结构
3. 在Application中进行Arouter初始化
1 | class App : Application() { |
**注意:**此处有两个小坑。
- 重写的
APP类需要在Manifest中进行添加,否则不会执行。(只需要在application节点中添加name并指向这个类即可) - 注意
BuildConfig这个类是引用谁的,因为Arouter本身也有BuildConfig。**此处需要引用Anroid的BuildConfig**。博主引用错了后,一直无法跳转。而且也一直没有报错,坑了很久
4. Activity的配置
以上工作做完后,就可以在需要跳转的Activity进行配置了。
跳转到的Activity,增加@Route注解
1 | @Route(path = Constants.Activitys.RECYCLELIST_ACTIVITY) |
需要进行跳转的Activity,调用Arouter单例进行跳转
1 | mBtnList.setOnClickListener { |