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.

  • Asignación variable de nula Kotlin
  • Observable.fromCallable () implementación con exception
  • ¿Las coroutines de kotlin tienen llamada asincrónica con timer?
  • La mejor manera de manejar ese escenario donde "smart cast es imposible"
  • ¿Cómo se pone la expresión lambda después de los parameters en un map para llamar a la syntax legal?
  • ¿Cómo get nombres y valores de los parameters del método?
  • Kotlin DialogFragment editText editable always null
  • Spring & kotlin: ¿Cuál es la diferencia entre el constructor y la inyección tardía?
  • IntelliJ importa Java Boolean y luego arroja un error
  • ambas aplicaciones: showAsAction = "ifRoom" y android: showAsAction = "ifRoom" no funcionan como se esperaba
  • ¿Cuál es la forma correcta de crear una nueva instancia de class genérica en kotlin?