美文网首页Android进阶
ARouter 打包异常 “Program type alrea

ARouter 打包异常 “Program type alrea

作者: 蓝色空间号 | 来源:发表于2018-06-01 11:54 被阅读0次

    在使用 ARouter 并且是多Module的时候,直接运行可能没有错,在打包的时候会报类似下面的错误:

    
    com.android.tools.r8.errors.CompilationError: Program type already present: com.alibaba.android.arouter.routes.ARouter$$Group$$messageCenter
    

    其实就是后面的包名重复了,这些类文件都是 ARouter 根据配置自动生成的,

    分析:目前有两种情况会导致这种报错

    1.可能是手误将 A module 引用的路由指向了 B module 比如:

    ps:代码是用kotlin写的

       //订单模块
        class OrderCenter{
            companion object {
                const val PATH_ORDER_CONFIRM = "/orderCenter/confirm"
            }
        }
    
        //消息模块
        class MessageCenter{
            companion object {
                const val PATH_MESSAGE_PUSH = "/messageCenter/push"
                const val PATH_MESSAGE_ORDER = "/messageCenter/order"
            }
        }
    

    OrderDetailActivity 其实是在订单模块下面的,但是这里引用了 “MessageCenter” 下面的路由,这就会造成订单模块下面自动生成的包名也包含 messageCenter 所以就会造成包名重复

    @Route(path = RouterPath.MessageCenter.PATH_MESSAGE_ORDER)
    class OrderDetailActivity{}
    

    2.自己定义的路由模块名称和源码里面的冲突了比如:

    ”/arouter/test” arouter不能用,源码中已经用了这个
    

    相关文章

      网友评论

        本文标题:ARouter 打包异常 “Program type alrea

        本文链接:https://www.haomeiwen.com/subject/eiihsftx.html