Java版本 (kotlin往下翻)
首先导入依赖
最新版本自己去官网看 github地址
//可以直接使用api放入基础模块中
api 'com.alibaba:arouter-api:1.5.0'
//需要注意 每个用到路由的模块都必须添加下面这句话!
annotationProcessor 'com.alibaba:arouter-compiler:1.2.2'
然后在module的build.gradle中加入
defaultConfig {
......
......
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
之后在appliction中进行初始化
//这里有个坑 如果开启了 InstantRun 那么必须要开启 ARouter.openDebug() 否则会一直报找不到路径 W/ARouter::: ARouter::There is no route match the path [/login/LoginActivityMain], in group [login][ ]
if(isDeBug()){
ARouter.openLog()
ARouter.openDebug()
}
ARouter.init(this)
在需要跳转的 activity 或者 fragment 上添加注解 @Roter(path="/…/…)
//这是路径 而且必须以 / 开头并最少两级,建议进行统一管理
Route(path = "/login/LoginActivityMain")
class LoginActivityMain: BaseActivity() {}
使用就很简单了
ARouter.getInstance().build("/login/LoginActivityMain").navigation()
也可以进行传值
ARouter.getInstance().build("/login/LoginActivityMain").withString("key","value").navigation()
可以使用传统的 getIntent.get…
也可以直接使用注解
@Autowired
String name;
使用注解需要添加
ARouter.getInstance().inject(this)
具体怎么使用还是去看大神的文章吧 > . <
kotlin
说下kotlin使用方法 , 与 java还是有点区别的
//arouter-api 不变与java相同
api'com.alibaba:arouter-api:1.5.0'
//这里是区别 kapt
kapt 'com.alibaba:arouter-compiler:1.2.2'
在 Module 的 build.gradle中加入
apply plugin: 'kotlin-kapt'
与
defaultConfig {
.....
.....
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
arg("AROUTER_GENERATE_DOC", "enable")
}
}
}
取值方法 不能用private修饰需要添加 @JvmField
@Autowired(name = "boole")
@JvmField
var mBool: Boolean? = null
如果取值为空需要注意是添加了
ARouter.getInstance().inject(this@LoginActivityMain)
最后再提一嘴,因为我找了好半天这个错…
如果开启了 InstantRun 那么必须要开启 ARouter.openDebug()
否则
W/ARouter::: ARouter::There is no route match the path [/login/LoginActivityMain], in group [login][ ]
ok 希望能够帮到你!
好运陌生人.