Kotlin上的Butterknife不适用于绑定颜色和可绘制对象AndroidX

时间:2019-02-06 21:36:48

标签: android kotlin butterknife

我仍然在我的Kotlin项目中使用Butterknife,但仅用于绑定颜色和可绘制对象,因为在绑定视图时不需要这样做。但是,将项目更新为AndroidX后,我无法继续使用该库。

这就是我所拥有的

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

kapt {
generateStubs = true
}

implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
kapt 'androidx.databinding:databinding-compiler:3.5.0-alpha02'
kapt 'com.android.tools.build.jetifier:jetifier-core:1.0.0-beta02'

ext.kotlin_version = '1.3.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

AS 3.3.1

以这种方式称呼他们

 @JvmField
 @BindColor(R.color.just_pink)
 var pink: Int = 0

 @JvmField
 @BindDrawable(R.drawable.rectangle_pink_btn_all_radius)
 var rectanglePinkAllRadius: Drawable? = null

确保onCreate方法上有Butterknife.bind(this, view)

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

在Kotlin中,您可以使用Kotlin注释处理工具(kapt)而不是注解处理器,以类似于Java的方式指定依赖项。

因此替换

annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'

与此

kapt 'com.jakewharton:butterknife-compiler:10.0.0'