Does butterknife 7.x work with Kotlin M14?

核能气质少年 提交于 2019-12-13 12:25:58

问题


I'm trying to use Butterknife with some Kotlin code and also Java code. I know that before M12, there was bad or no support for annotation processing that ButterKnife required. So I have kept my activities in Java. It was working at least in Java with Butterknife 6.x and preM12 Kotlin. I'm trying now butterknife 7.x with M13 and M14. It should have even annotation processing support, but it's not working for me. bind() function doesn't bind anything in my adapter which is written in Java nor in activity written in Kotlin.

I'm using this in build.gradle (tried latest version on 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'
}

This doesn't compile. I tried also 'com.neenbedankt.android-apt' which does compile but binding is not working.

I know that there is probably not support in butterknife for that yet. But is there any hack to get it working?


回答1:


It does work with the current version of Kotlin (1.0.0-beta-3595), I suggest you to take a look at the android-butterknife project which can be found inside the JetBrains's kotlin-examples repo. In short all you need to do is:

  1. Add the following to your app/build.gradle file:

    kapt {
        generateStubs = true
    }
    
  2. Put the following line inside the dependencies block of the same build.gradle file (assuming you already added compile 'com.jakewharton:butterknife:7.0.1' to your dependencies):

    kapt 'com.jakewharton:butterknife:7.0.1'
    

And that should be it.




回答2:


Butterknife is supported. Use kapt: [1], [2].

Note that Butterknife does not support private Java fields, so you can use the lateinit modifier to make it public.

Also, if you use kapt, apply plugin: 'com.neenbedankt.android-apt' line is not needed anymore.



来源:https://stackoverflow.com/questions/32952049/does-butterknife-7-x-work-with-kotlin-m14

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!