¿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):
- La biblioteca de Kotlin 'classes.jar' tiene un formato no soportado. Actualice la biblioteca o el complemento
- ¿Cuál es la diferencia básica entre doblar y reducir en Kotlin? ¿Cuándo usar qué?
- Cómo recurrir completamente a SortedList de RecyclerView
- Kotlin: no se puede encontrar la clase de símbolo Fragment u otras clases de android
- ¿Cómo interactúa Kotlin con Java y JavaScript?
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?
- Varargs Kotlin interoperabilidad Java no funciona correctamente
- Kotlin: Cómo trabajar con Casts de listas: Desmarcado Cast: kotlin.collections.List <Kotlin.Any?> A kotlin.colletions.List <Waypoint>
- Crear una clase View / ViewGroup personalizada en Anko DSL
- Reglas de ProGuard para la reflexión de Kotlin
- Deshabilitar la generación incremental para kapt
- Kotlin setter infinte recursion
- Kotlin: @ propiedades ignoradas persistidas por Sugar ORM
- Cómo utilizar Kotlin coroutines esperan () en el hilo principal
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:
-
Agregue lo siguiente al archivo de su
app/build.gradle
:kapt { generateStubs = true }
-
Ponga la siguiente línea dentro del bloque de
dependencies
del mismo archivobuild.gradle
(asumiendo que ya ha agregadocompile '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'
.
- Abrir URL en WebView en lugar del explorador predeterminado
- No se puede encontrar el módulo con la ruta Gradle. Vinculación a la biblioteca -no especificado en su lugar