Kotlin 上的 Butterknife 不适用于绑定颜色和可绘制对象 AndroidX
Butterknife On Kotlin Not Working For Binding Colours And Drawables AndroidX
我仍然在我的 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)
。
感谢您的帮助。
在 Kotlin 中,您可以使用 Kotlin 注释处理工具 (kapt) 而不是 annotationProcessor,以类似于 Java 的方式指定依赖项。
所以替换
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
有了这个
kapt 'com.jakewharton:butterknife-compiler:10.0.0'
我仍然在我的 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)
。
感谢您的帮助。
在 Kotlin 中,您可以使用 Kotlin 注释处理工具 (kapt) 而不是 annotationProcessor,以类似于 Java 的方式指定依赖项。
所以替换
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
有了这个
kapt 'com.jakewharton:butterknife-compiler:10.0.0'