Kotlin与Java混编模式下,使用Arouter及ButterKnife问题
最近在对项目中模块进行Kotlin改造时,遇到以下几个问题,特此记录,希望帮到大家
https://blog.youkuaiyun.com/xych45/article/details/104648728/
1. 当*.kt 后缀的Activity上使用@Router(path =xxxxx)时候遇到No match path
- 添加apply plugin: 'kotlin-kapt'
- 替换以下内容
// 原有方式
// javaCompileOptions {
// annotationProcessorOptions {
// arguments = [AROUTER_MODULE_NAME: project.name]
// }
// }
// 新方式
kapt {
arguments {
arg("AROUTER_MODULE_NAME", project.name)
}
}
}
- 修改dependencies中内容,改为kapt com.alibaba:arouter-compiler:x.x.x
以上三步即可解决找不到路径的问题
2. 原有.java后缀的Activty、Fragment报空指针NullPointerException,排查是ButterKnife出了问题
针对此问题,只需将annotationProcessor com.jakewharton:butterknife-compiler:x.x.x
改为apt com.jakewharton:butterknife-compiler:x.x.x即可