Closed
Description
是关于There is no route match the path [/xxx/xxx], in group [xxx][ ]
假设一种情况:
A Module 中注解了/a/target1
B Module 中注解了/b/target2 /a/target3
A Module的apt会生成Arouter$$Group$$a
B Module的apt会生成Arouter$$Group$$b 和 Arouter$$Group$$a
其中Arouter$$Group$$a是同包名同类名,因此打包apk的时候会覆盖,值保留其中一个类,进而导致A Module 的注解类无法跳转。
当然这种情况是因为对路径名管理不正确导致的,但出现这个问题的时候定位起来也是比较麻烦,我是查看源码以及断点才发现问题,对于新手可能不太友好。
既然build.gradle中配置moduleName,为何不在生成Arouter$$Group$$a类时带上Module名,而不是将Module与Group划分为同一级的东西。这样做即使出现不同Module定义相同的路径第一段,也能够区分,而不是覆盖。
Activity
LinXiaoTao commentedon Feb 6, 2018
+1
zhi1ong commentedon Feb 6, 2018
设计上就不希望多个module共用同一个group,文件名冲突可以方便开发阶段发现
LinXiaoTao commentedon Feb 6, 2018
@zhi1ong 是否能做到在编译时就抛出这个异常信息呢。
qqyumidi commentedon May 15, 2019
我们项目中最近也遇到了这个问题,其实感觉这个建议挺好啊,不知道官方为什么不考虑呢?
XuanJiAndroid commentedon Apr 7, 2020
@zhi1ong 如何设置自定义group ?