Skip to content

提一条优化点 #296

Closed
Closed
@huburt-Hu

Description

@huburt-Hu

是关于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

LinXiaoTao commented on Feb 6, 2018

@LinXiaoTao
Contributor

+1

zhi1ong

zhi1ong commented on Feb 6, 2018

@zhi1ong
Member

设计上就不希望多个module共用同一个group,文件名冲突可以方便开发阶段发现

LinXiaoTao

LinXiaoTao commented on Feb 6, 2018

@LinXiaoTao
Contributor

@zhi1ong 是否能做到在编译时就抛出这个异常信息呢。

qqyumidi

qqyumidi commented on May 15, 2019

@qqyumidi

我们项目中最近也遇到了这个问题,其实感觉这个建议挺好啊,不知道官方为什么不考虑呢?

XuanJiAndroid

XuanJiAndroid commented on Apr 7, 2020

@XuanJiAndroid

@zhi1ong 如何设置自定义group ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @qqyumidi@zhi1ong@huburt-Hu@LinXiaoTao@XuanJiAndroid

        Issue actions

          提一条优化点 · Issue #296 · alibaba/ARouter