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

NO IMAGE

前言

如有以下情況,本節教程可能對你有幫助
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"
}

問題解決了,就可以看看下面的原理

請關注我(分享日常開發)

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

相關文章

Kotlin基本類型

Python爬蟲之旅之豆瓣音樂

Python爬蟲之旅之Selenium庫的使用

Kotlin重構初體驗之告別FindViewById