我试图将Butterknife与一些Kotlin代码和Java代码一起使用。我知道在M12之前,对ButterKnife所需的注释处理有不好或不支持。所以我把我的活动保存在Java中。它至少在Java中使用Butterknife 6.x和preM12 Kotlin。
我现在尝试使用M13和M14的butterknife 7.x.它甚至应该有注释处理支持,但它对我不起作用。 bind()
函数不会绑定我的适配器中的任何内容,该适配器是用Java编写的,也不是用Kotlin编写的活动。
我在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'哪个编译但绑定不起作用。
我知道 butterknife 可能还没有支持。但有没有让它运作的黑客?
答案 0 :(得分:13)
它适用于当前版本的Kotlin(1.0.0-beta-3595),我建议你看一下可以在JetBrains' {{{{{{{{ 3}}回购。简而言之,您需要做的就是:
将以下内容添加到app/build.gradle
文件中:
kapt {
generateStubs = true
}
将以下行放在同一dependencies
文件的build.gradle
块中(假设您已将compile 'com.jakewharton:butterknife:7.0.1'
添加到依赖项中):
kapt 'com.jakewharton:butterknife:7.0.1'
那应该是它。
答案 1 :(得分:3)