一篙梢、先導(dǎo)入ARoute,這里分為兩種情況赞别,java和kotlin
在module(或library)中的build.gradle添加如下代碼
- java配置
android {
....省略...
defaultConfig {
....省略...
//java路由配置
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
....省略...
}
}
dependencies{
//java路由導(dǎo)入
implementation 'com.alibaba:arouter-api:1.5.2'
annotationProcessor 'com.alibaba:arouter-compiler:1.5.2'
}
- kotlin配置
android {
....省略...
defaultConfig {
....省略...
//kotlin 路由配置
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
....省略...
}
}
dependencies{
//kotlin路由導(dǎo)入
implementation 'com.alibaba:arouter-api:1.5.2'
kapt 'com.alibaba:arouter-compiler:1.5.2'
}
注意:在用到此框架的library庫(kù)或者module中吼具,都需要添加配置
二绘迁、初始化
官方文檔推薦在Application中初始化
class MyApplication: Application() {
override fun onCreate() {
super.onCreate()
if (BuildConfig.DEBUG) { // 這兩行必須寫在init之前目溉,否則這些配置在init過(guò)程中將無(wú)效
ARouter.openLog(); // 打印日志
ARouter.openDebug(); // 開啟調(diào)試模式(如果在InstantRun模式下運(yùn)行嚎卫,必須開啟調(diào)試模式狰域!線上版本需要關(guān)閉,否則有安全風(fēng)險(xiǎn))
}
ARouter.init(this); // 盡可能早永部,推薦在Application中初始化
}
}
三字管、具體使用
1.在activity上添加如下注解@Route(path = "/app/MainActivity")
,"/app/MainActivity"是自定義的路勁啰挪,注意的是此路勁至少需要有兩級(jí)/xxx/xxx,
@Route(path = "/app/MainActivity")
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
2.跳轉(zhuǎn)到上述頁(yè)面方法
// 1. 應(yīng)用內(nèi)簡(jiǎn)單的跳轉(zhuǎn)(通過(guò)URL跳轉(zhuǎn)在'進(jìn)階用法'中)
ARouter.getInstance().build("/app/MainActivity").navigation();
// 2. 跳轉(zhuǎn)并攜帶參數(shù)
ARouter.getInstance().build("/app/MainActivity")
.withLong("key1", 666L)
.withString("key3", "888")
.withObject("key4", new Test("Jack", "Rose"))
.navigation();
3.注意:取值與平時(shí)一樣用intent就行,另外還有些高級(jí)用法嘲叔,可以去ARoute官網(wǎng)亡呵,這里就不一 一介紹了
四、遇到的一些坑
1硫戈、不能在kotlin module中添加ARoute的java引入和配置锰什,同理反過(guò)來(lái)java module中添加ARoute的kotlin引入和配置也不行,雖然運(yùn)行不會(huì)報(bào)錯(cuò),但是會(huì)提示找不到路勁
2汁胆、如過(guò)還是遇到找不到路勁問(wèn)題梭姓,可以參考上面代碼,是否有漏寫