Kotlin重构如何兼容原先的ButterKnife、EventBus3.1

1,483 阅读1分钟

前言

如有以下情况,本节教程可能对你有帮助 1.如果原先项目用java写的,现在需要引入kotlin,这个时候你会碰到Java中的Butterknife点击事件失效了,以及EventBus3.1在编译期生成的索引文件找不到了。 2.如果整个工程都是Kotlin项目,你需要用到Butterknife的onClick功能或者EventBus事件总线。

环境以及工具

AndroidStudio3.1.4

效果展示

MainActivity.kt文件

   @BindView(R.id.ivLogo)
   lateinit var ivLogo: ImageView

   @OnClick(R.id.xxx)
    fun onViewClicked(view: View) {
        when (view.id) {
            R.id.tvForgotPassword -> {
            }
            R.id.tvCommit -> {
            }
            else -> {
            }
        }
    }

整体步骤

app build.gradle

用kotlin之前

dependencies {
    implementation "com.jakewharton:butterknife:8.8.1"
    annotationProcessor"com.jakewharton:butterknife-compiler:8.8.1"
    implementation "org.greenrobot:eventbus:3.1.1"
    annotationProcessor"org.greenrobot:eventbus-annotation-processor:3.1.1"
}

用kotlin之后

apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
}

dependencies {
    implementation "com.jakewharton:butterknife:8.8.1"
    kapt "com.jakewharton:butterknife-compiler:8.8.1"
    implementation "org.greenrobot:eventbus:3.1.1"
    kapt "org.greenrobot:eventbus-annotation-processor:3.1.1"
}

问题解决了,就可以看看下面的原理

请关注我(分享日常开发)