Error: no se encontró el procesador de annotations '__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'

Por lo tanto, estoy tratando de build mi proyecto de Android con Kotlin y agregar la biblioteca de data binding de Android. En Android Studio 2.2.3 no hubo ningún problema con eso. Pero después de actualizar a la última versión de Android Studio (2.3.0) recibí este error cuando bash ejecutar la aplicación.

enter image description here

Aquí está build.gradle de mi proyecto

buildscript { ext.kotlinVersion = '1.1.0' ext.androidGradlePluginVersion = '2.3.0' ... dependencies { classpath "com.android.tools.build:gradle:${androidGradlePluginVersion}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' } } ... 

Y aquí está mi build.gradle de mi aplicación

 apply plugin: 'com.android.application' apply plugin: 'com.neenbedankt.android-apt' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.2" ... packagingOptions { exclude 'META-INF/rxjava.properties' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } dataBinding.enabled = true } dependencies { ... compile "com.google.dagger:dagger:${daggerVersion}" compile "com.google.dagger:dagger-compiler:${daggerVersion}" provided 'javax.annotation:jsr250-api:1.0' kapt "com.android.databinding:compiler:$androidGradlePluginVersion" compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" } 

¿Hay algo que deba actualizar para que Kotlin funcione con la biblioteca de data binding de Android? Por favor ayuda. Gracias por adelantado.

EDITAR:

Basado en la respuesta de @Rene, traté de replace kotlin-android-extensions con kotlin-kapt , pero cuando traté de sincronizar gradle recibí otro error.

enter image description here

enter image description here

¿Alguien qué está mal de este error? Gracias

ARREGLO QUE FUNCIONA:

Resulta que solo necesito actualizar algunas líneas relacionadas con Dagger2 en mi gradle. REMOJO esta línea a continuación del file build.gradle de mi proyecto.

 classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 

Y actualice las dependencies relacionadas con Dagger2 en el file build.gradle de mi aplicación para que sea así.

 compile "com.google.dagger:dagger:${daggerVersion}" kapt "com.google.dagger:dagger-compiler:${daggerVersion}" provided 'org.glassfish:javax.annotation:10.0-b28' 

Obtuve esta configuration de este artículo

Aquí está mi contenido de build.gradle que FUNCIONA para mí.

Project's build.gradle

 buildscript { ext.kotlinVersion = '1.1.0' ext.androidGradlePluginVersion = '2.3.0' repositories { jcenter() } dependencies { classpath "com.android.tools.build:gradle:${androidGradlePluginVersion}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir } 

build.gradle de la aplicación

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' android { compileSdkVersion 25 buildToolsVersion "25.0.2" dexOptions { maxProcessCount 2 javaMaxHeapSize "2g" } defaultConfig { applicationId "my.application.id" minSdkVersion 16 targetSdkVersion 25 versionCode 1 versionName "1.0" multiDexEnabled true testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/rxjava.properties' } sourceSets { main.java.srcDirs += 'src/main/kotlin' } dataBinding.enabled = true } kapt { generateStubs = true } ext { supportLibVersion = '25.2.0' retrofitVersion = '2.2.0' daggerVersion = '2.7' googleServiceVersion = '10.2.0' rxJavaVersion = '2.0.6' rxAndroidVersion = '2.0.1' glideVersion = '3.7.0' constraintLayoutVersion = '1.0.1' } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) testCompile 'junit:junit:4.12' compile "com.squareup.retrofit2:retrofit:${retrofitVersion}" compile "com.squareup.retrofit2:converter-gson:${retrofitVersion}" compile "com.squareup.retrofit2:adapter-rxjava:${retrofitVersion}" compile 'com.squareup.okhttp3:logging-interceptor:3.3.0' compile "com.android.support:support-compat:${supportLibVersion}" compile "com.android.support:support-core-utils:${supportLibVersion}" compile "com.android.support:support-core-ui:${supportLibVersion}" compile "com.android.support:design:${supportLibVersion}" compile "com.android.support:appcompat-v7:${supportLibVersion}" compile "com.android.support:recyclerview-v7:${supportLibVersion}" compile "com.android.support:cardview-v7:${supportLibVersion}" compile "com.android.support.constraint:constraint-layout:${constraintLayoutVersion}" compile "com.google.dagger:dagger:${daggerVersion}" kapt "com.google.dagger:dagger-compiler:${daggerVersion}" provided 'org.glassfish:javax.annotation:10.0-b28' compile 'com.android.support:multidex:1.0.1' compile('com.mikepenz:fastadapter:1.8.2@aar') { transitive = true } compile 'com.mikepenz:fastadapter-extensions:1.8.0@aar' compile 'com.mikepenz:materialize:1.0.0@aar' compile "com.google.android.gms:play-services-location:${googleServiceVersion}" compile "com.google.android.gms:play-services-maps:${googleServiceVersion}" compile "io.reactivex.rxjava2:rxjava:${rxJavaVersion}" compile "io.reactivex.rxjava2:rxandroid:${rxAndroidVersion}" compile "com.github.bumptech.glide:glide:${glideVersion}" kapt "com.android.databinding:compiler:$androidGradlePluginVersion" compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlinVersion" compile 'de.hdodenhof:circleimageview:2.1.0' } repositories { mavenCentral() } 

Gracias.

Comenzando con Kotlin 1.1, tuve que cambiar al procesador de anotación Kotlin más nuevo.

Aplicarlo de esta manera:

 apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' 

Lo encontré mencionado por primera vez en la versión 1.0.6 en kotlin-1-0-6-is-here

  1. Elimine el complemento android-apt del classpath del script de compilation.
  2. Use kapt lugar de apt / annotationProcessor en su configuration de dependencia.
  3. Agregue kapt 'com.android.databinding:compiler:2.3.0' a sus dependencies porque Kotlin + Android Build Plugin 2.3.0 con combinación de datos está roto.

Lo que creo que sucede es que kapt está reemplazando el procesador de annotations y no selecciona las configuraciones de annotationProcessor , que es lo que usa la unión de datos en lugar del complemento android-apt desde 2.3.0.

Ver también: https://code.google.com/p/android/issues/detail?id=228983


Si no usaste Kotlin:

  1. Elimine el complemento android-apt del classpath del script de compilation.
  2. Use annotationProcessor lugar de apt en su configuration de dependencia.

se encontró con el mismo problema hoy cuando se actualiza a Kotlin 1.1.

"lo arreglé" volviendo al gradle 2.2.3

No estaba usando apt en mi proyecto en absoluto, podría estar relacionado con la biblioteca de data binding. Utilizo kapt para reino, cuchillo de mantequilla, daga y data binding.

  • Intellij no incluye la dependencia de gradle en classpath al ejecutar una aplicación
  • TornadoFX ItemViewModel se actualiza si se cambia el object de respaldo que no expone las properties de JavaFX
  • Pasando 'esto' a un Constructor
  • Cómo alternar la visibilidad de FAB con otro FAB
  • ¿Cómo puedo almacenar datos de tipo reificado en campos de instancia en Kotlin?
  • ¿Cómo acceder a "Activity.this" en Kotlin?
  • Cómo usar anko spinner?
  • Dolor de cabeza por inheritance genérica de Kotlin
  • OpenGL Texture Glitch con caras
  • ¿Es posible devolver el mismo tipo que el parámetro de tipo en la instrucción when
  • "No hay suficiente información para inferir el parámetro T" con Kotlin y Android