工作记录:kotlin混合编程Arouter无法匹配路径

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

你可能感兴趣的:(工作记录:kotlin混合编程Arouter无法匹配路径)