最近要做新项目了,准备从头准备一个自己的框架,以便于以后开发新项目不用再从头封装网络请求库,版本更新库和一些utils工具;鉴于对组件化的向往,公司的新项目准备做成组件化的,用library模块依赖我自己的框架库,library模块上面是中间层封装的http模块,database模块,网络请求模块和utils模块,用base模块依赖中间层模块,在base模块上面是业务模块比如账号管理模块,商城模块,个人中心模块,在上层当然就是我们App的入口模块了,大概如下图:
whiteboardappdotorg20201203162656.png
那么组件化已经使用,组件化通讯工具当然必不可少了!我使用的是ARouter,于是,踩了好几脚大坑!
在Arouter的使用过程中 第一步先在Gradle添加依赖
android{
defaultConfig {
... javaCompileOptions {
annotationProcessorOptions {
arguments=[AROUTER_MODULE_NAME: project.getName()]
}
}
}
}
dependencies{
//Replace with the latest version
compile'com.alibaba:arouter-api:?'
annotationProcessor'com.alibaba:arouter-compiler:?'
}
然后,在使用ARouter跳转之前先初始化
ARouter.init(this);
基本组件化通讯就完成了,下面就是业务时间了,但是我的项目是kotlin项目,所以请注意
kotlin项目配置如下:
apply plugin 'kotlin-kapt'
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
kapt 'com.alibaba:arouter-compiler:?'
kotlin和java的写法是不一样的,如果Gradle配置错了,那么路由是无法注册进去的,自然就找不到路径了。
网友评论