¿Trabaja Butknife 7.x con Kotlin M14?

Estoy tratando de usar Butterknife con un código Kotlin y código Java. Sé que antes de M12, había mala o ninguna ayuda para el procesamiento de la anotación que requirió ButterKnife. Así que he mantenido mis actividades en Java. Estaba funcionando al menos en Java con Butterknife 6.x y preM12 Kotlin. Estoy tratando ahora butterknife 7.x con M13 y M14. Debe tener incluso soporte de procesamiento de anotaciones, 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 (probado 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 compila. También he intentado 'com.neenbedankt.android-apt' que compila pero no funciona.

Sé que es probable que no haya apoyo en butterknife para eso todavía. Pero ¿hay algún hack para conseguir que funcione?

No funciona con la versión actual de Kotlin (1.0.0-beta-3595), te sugiero que eche un vistazo al proyecto androide-butterknife que se puede encontrar dentro del repositorio de kotlin-examples de JetBrains. En resumen todo lo que necesitas hacer es:

  1. Agregue lo siguiente al archivo de su app/build.gradle :

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

     kapt 'com.jakewharton:butterknife:7.0.1' 

Y eso debería ser.

Butterknife es apoyado. Utilice kapt: [1] , [2] .

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

Además, si usas kapt, apply plugin: 'com.neenbedankt.android-apt' no se necesita más la línea apply plugin: 'com.neenbedankt.android-apt' .

  • Referencia no resuelta para Dagger 2 en Kotlin
  • Kotlin: Recopilación incremental con Gradle
  • ¿Cuáles son las ventajas del lenguaje de programación Kotlin?
  • Kotlin: Iterate a través de un JSONArray
  • Android: no se puede actualizar ListView con CustomAdapter
  • Gradle dependencia entre tareas
  • RequiereApi vs TargetApi anotaciones android
  • Gson no puede analizar una cadena de datos de formato json en Kotlin
  • Cómo configurar múltiples valores de gravedad mediante programación en Kotlin?
  • Dagger 2 Named no se puede proporcionar sin un método @Provides
  • Intentos en Kotlin
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.