工做记录: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

java的依赖配置

若是moudle为纯java,则能够使用java的配置方式:react

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的配置方式:android

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

相关文章
相关标签/搜索