android - Butterknife 7.x 是否适用于 Kotlin M14?

标签 android kotlin butterknife

我正在尝试将 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 。简而言之,您需要做的就是:

  1. 将以下内容添加到您的 app/build.gradle 文件中:

    kapt {
        generateStubs = true
    }
    
  2. 将以下行放入同一 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/

相关文章:

android-widget - 如何禁用从/到 EditText 的复制/粘贴

android - 如何在 Android Studio 中配置 Kotlin 的自动完成设置?

kotlin - 在 micronaut 属性中使用数据类

android - 类路径中的某些运行时 JAR 文件具有不兼容的版本。考虑从类路径中删除它们

android - Butterknife android 示例总是显示 NoClassDefFoundError

android - 将 butterknife 添加到 android 库项目会为库类提供编译时错误 "package does not exists"

android - lateinit 属性尚未初始化

android - 像指南针一样旋转 ImageView(在别处设置 "north pole")

android - 尝试使用 ButtonTheme 设置最小宽度时出错

java - 自定义应用程序类在 Nougat 中随机不被覆盖