Funciona butterknife 7.x con Kotlin M14?

Intento usar Butterknife con algún código de Kotlin y también código de Java. Sé que antes de M12, no había soporte suficiente para el procesamiento de annotations que ButterKnife requería. Así que he mantenido mis actividades en Java. Funcionaba al less en Java con Butterknife 6.x y preM12 Kotlin. Estoy probando butterknife 7.x con M13 y M14. Debería tener soporte para el procesamiento de annotations, pero no funciona para mí. bind() no vincula nada en mi adaptador que está escrito en Java ni en la actividad escrita en Kotlin.

Estoy usando esto en build.gradle (intenté la última versión en 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' } 

Esto no comstack. Intenté también 'com.neenbedankt.android-apt' que comstack pero el enlace no funciona.

Sé que probablemente aún no hay soporte en el cuchillo de mantequilla para eso. Pero, ¿hay algún truco para que funcione?

Funciona con la versión actual de Kotlin (1.0.0-beta-3595), le sugiero que eche un vistazo al proyecto android-butterknife que se puede encontrar en el repository kotlin-examples de JetBrains. En resumen, todo lo que necesita hacer es:

  1. Agregue lo siguiente a su file app/build.gradle :

     kapt { generateStubs = true } 
  2. Coloque la siguiente línea dentro del bloque de dependencies del mismo file build.gradle (suponiendo que ya ha agregado compile 'com.jakewharton:butterknife:7.0.1' a sus dependencies):

     kapt 'com.jakewharton:butterknife:7.0.1' 

Y eso debería ser.

Butterknife es compatible. Use kapt: [1] , [2] .

Tenga en count que Butterknife no admite campos Java privados, por lo que puede usar el modificador lateinit para hacerlo público.

Además, si usa kapt, apply plugin: 'com.neenbedankt.android-apt' ya no es necesaria.

  • Android Kotlin: envía notifications cada minuto
  • ¿Cómo se burla de la class Kotlin (final) usando PowerMock?
  • Convención de nomenclatura de Kotlin para methods de retorno booleans
  • Convertir hilo de Java en Kotlin
  • Asignación de valores a ArrayList usando mapTo
  • Cuál es la diferencia entre launch / join y async / await en Kotlin coroutines
  • Expresiones de kotlin lambda como parámetro opcional
  • kotlin y ArgumentCaptor - IllegalStateException
  • Kotlin, Proguard y lambdas
  • Burlas de respuestas API usando Mockito
  • Anulación de getter de Kotlin + MongoDB