ARouter There is no route match the path [/xxx/xxx], in group [xxx][ ]
最近項目里引入了Kotlin,保留了老的Java文件,但是新的需求都使用Kotlin進行開發。在做react項目接入時,發現ARouter總是報無法匹配路徑。一頓翻閱官方文檔發現kotlin項目的配置和java有些許不同。再此記錄一下,也讓大家少走彎路。在原有java項目中加入kotlin時一定要注意修改Arouter的配置。
java的依賴配置
如果moudle為純java,則可以使用java的配置方式:
android {
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
arguments = [AROUTER_MODULE_NAME: project.getName()]
}
}
}
}
dependencies {
// 替換成最新版本, 需要注意的是api
// 要與compiler匹配使用,均使用最新版可以保證兼容
compile 'com.alibaba:arouter-api:x.x.x'
annotationProcessor 'com.alibaba:arouter-compiler:x.x.x'
...
}
kotlin的依賴配置
如果moudle為包含kotlin,則要使用kotlin的配置方式:
apply plugin: 'kotlin-kapt'
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.getName())
}
}
dependencies {
compile 'com.alibaba:arouter-api:x.x.x'
kapt 'com.alibaba:arouter-compiler:x.x.x'
...
}
總結
在使用第三方的庫時一定要認真閱讀官方的文檔,幸好在我引用kotlin之后有新的跳轉需求。如果項目直接上線,線上的Arouter跳轉將全部失效,帶來的后果難以想象。
Arouter相關知識可在Arouter官方教程上學習了解