我正在尝试将 Butterknife 与一些 Kotlin 代码和 Java 代码一起使用。我知道在 M12 之前,对 ButterKnife 所需的注释处理的支持不好或不支持。所以我一直在 Java 中进行我的 Activity 。它至少在 Java 中与 Butterknife 6.x 和 preM12 Kotlin 一起工作。
我现在正在尝试使用 M13 和 M14 的 butterknife 7.x。它甚至应该支持注释处理,但它对我不起作用。 bind()
函数不会绑定(bind)我的适配器中的任何东西,它是用 Java 编写的,也不会绑定(bind)在用 Kotlin 编写的 Activity 中。
我在 build.gradle 中使用它(在 Github 上试用过最新版本):
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
provided files('libs/butterknife-annotations.jar')
kapt files('libs/butterknife-compiler-8.0.0-SNAPSHOT.jar')
compile 'com.jakewharton:butterknife:8.0.0-SNAPSHOT@aar'
}
这不会编译。我还尝试了“com.neenbedankt.android-apt”,它可以编译但绑定(bind)不起作用。
我知道 butterknife 可能还不支持该功能。但是有什么技巧可以让它工作吗?
最佳答案
它适用于当前版本的 Kotlin (1.0.0-beta-3595),我建议你看看 android-butterknife可以在 JetBrains 的 kotlin-examples 中找到的项目 repo 。简而言之,您需要做的就是:
将以下内容添加到您的
app/build.gradle
文件中:kapt { generateStubs = true }
将以下行放入同一
build.gradle
文件的dependencies
block 中(假设您已经添加了compile 'com.jakewharton:butterknife :7.0.1'
到您的依赖项):kapt 'com.jakewharton:butterknife:7.0.1'
应该就是这样。
关于android - Butterknife 7.x 是否适用于 Kotlin M14?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32952049/