工做記錄: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

相關文章
相關標籤/搜索