Kotlin与Java混编模式下,使用Arouter及ButterKnife问题

Kotlin与Java混编模式下,使用Arouter及ButterKnife问题

最近在对项目中模块进行Kotlin改造时,遇到以下几个问题,特此记录,希望帮到大家

1. 当*.kt 后缀的Activity上使用@Router(path =xxxxx)时候遇到No match path

  1. 添加apply plugin: 'kotlin-kapt'
  2. 替换以下内容
//	  原有方式
//        javaCompileOptions {  
//            annotationProcessorOptions {  
//                arguments = [AROUTER_MODULE_NAME: project.name]  
//            }  
//        }

//     新方式
        kapt {
            arguments {
                arg("AROUTER_MODULE_NAME", project.name)
            }
        }
    }
  1. 修改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即可

3. 最终App级build.gradle文件如下

Kotlin与Java混编模式下,使用Arouter及ButterKnife问题_第1张图片

你可能感兴趣的:(遇坑填坑)