本文只是作为一个记录如何导入Arouter的方法
1、多模块组件开发,建立一个作为公共依赖的gradle文件:config.gradle
在config.gradle的dependencies中,添加Arouter依赖
在config.gradle的defaultConfig中
注意:关于Arouter的依赖已经添加完成,不要再去每个moudle的gradle文件中加依赖了,不用加!!!
2、在每个模块中添加依赖config.gradle就可以了
app模块的gradle文件中:
这里有个需要注意的小坑,就是plugins必须写在apply from上面,必须写在最顶部,如果使用的还是Gradle4.+,就没影响,因为这是Gradle7.+的新写法,一定要写在apply from上面
在dependencies中
添加对应的组件模块
在其余的组件模块的gradle文件中也类似,这里列出page模块的gradle文件
一是apply from要在 plugins下面
二是依赖config.gralde文件
在dependencies中添加对应需要的通用依赖
到这里,我们就把依赖全部添加完成了,注意,并不需要在每个moudle的gradle文件中都去添加Arouter的依赖,只需要在一个公用的gradle文件里面添加就好了
我把截图摆出来,很明显,每个添加了config.gradle依赖的moudle,都依赖了Arouter,干嘛还要去每个gradle文件中都写一遍
3、添加路由Path
同样在基类base模块里面,写一个object class单例对象,或者一个class的伴生对象都没问题
路由的path,至少写两级,也就是至少"/moudle名称/Activity"
4、注解路径
格式就是这么简单 Route(path = xxx.xxx)
我是觉得将path统一写在基础moudle中,方便管理
跳转:
5、别忘记初始化
在application中
6、 ARouter::There is no route match the path [/page/PageMainActivity], in group [page][ ]
这个问题几乎是每一位使用Arouter的开发者都会遇到的问题
如果按照以上流程,应该是不会遇到这个问题的
我刚遇到这个问题的时候也是到处找解决方案:
其中最多的就是:
不一定是这样解决喔,这样也不一定能解决
其实只要按照正常流程配置,注意在主moudle也就是启动App的gradle文件中
一定要依赖每个moudle,这样才能跳转
app要跳page、fragment模块,一定要添加这两个模块的依赖
ps:在app 的gradle文件中添加了page和fragment的依赖后,从page模块跳转到fragment模块也实现了,也就是说只要在主app的gradle文件中,将模块正常依赖,Arouter配置完成后,moudle与moudle之间就可以直接跳转传值了