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官方教程上学习了解