with the replaced plugin please instead incompatible has compile been annotationprocessor and android android-studio gradle android-apt

the - Complementos incompatibles para Android-apt después de actualizar a Android Studio 2.3



configuration ''compile'' is obsolete and has been replaced with ''implementation'' and ''api''. (5)

Después de actualizar de 2.2 a 2.3 veo esta advertencia

y cuando intento compilar el proyecto veo este error de compilación

¿Cómo puedo resolver este problema sin degradar a una versión anterior de gradle? ¿Hay alguna actualización de android-apt que pueda resolver este problema?


  1. Eliminar el complemento apt

  2. Cambio:

    apt -> compilar

    testApt -> testAnnotationProcessor

    androidTestApt -> androidTestAnnotationProcessor

  3. En su build.gradle (aplicación), agregue a defaultConfig:

vectorDrawables.useSupportLibrary = true


El complemento android-apt ha quedado en desuso .
Consulte aquí la guía de migración :

A partir de la versión 2.2 del complemento Android Gradle, todas las funcionalidades proporcionadas anteriormente por Android-apt ahora están disponibles en el complemento Android.

Puede eliminar android-apt siguiendo la guía de migración para obtener las funcionalidades equivalentes.

Las partes importantes de la guía de migración :

  • Asegúrese de estar en el complemento Android Gradle 2.2 o posterior.
  • Elimine el complemento android-apt de sus scripts de compilación
  • Cambie todas las dependencias apt , androidTestApt y testApt a su nuevo formato:

dependencies { compile ''com.google.dagger:dagger:2.0'' annotationProcessor ''com.google.dagger:dagger-compiler:2.0'' }

También en el complemento Android Gradle hay una comprobación explícita de esto, que es lo que está viendo:

usando complementos incompatibles para el procesamiento de anotaciones android-apt

Las futuras versiones del complemento de Android Gradle no serán compatibles con la forma en que funciona android-apt , que es la razón de esa verificación.


En caso de que el procesador de anotaciones tenga argumentos, uno también podría tener que cambiar esto:

apt { arguments { KEY "VALUE" } }

a esto:

android { ... defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [''KEY'': ''VALUE''] } } } }


Llevar a cuestas a @Gabriele Mariotti aquí ya que su respuesta es bastante acertada e implica esto, pero no lo dice. Gradle tampoco sugiere esto como una opción válida, aunque también lo es. El equivalente de prueba para androidTestApt y testApt es androidTestAnnotationProcessor y testAnnotationProcessor .

Ejemplo:

testApt "com.google.dagger:dagger-compiler:$daggerVersion" androidTestApt "com.google.dagger:dagger-compiler:$daggerVersion"

Debería cambiarse a

testAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion" androidTestAnnotationProcessor "com.google.dagger:dagger-compiler:$daggerVersion"


Para mí, estaba teniendo este error al usar la biblioteca de la Vault de Vault que especifica que incluye:

apply plugin: ''com.neenbedankt.android-apt''

y

compile ''com.contentful.vault:core:2.1.0'' apt ''com.contentful.vault:compiler:2.1.0''

Lo que debe hacer es ELIMINAR el apply plugin: ''com.neenbedankt.android-apt''

y luego CAMBIO :

compile ''com.contentful.vault:core:2.1.0'' apt ''com.contentful.vault:compiler:2.1.0''

a

annotationProcessor ''com.contentful.vault:compiler:2.1.0'' annotationProcessor ''com.contentful.vault:core:3.0.1''

Siempre puede consultar https://github.com/contentful/vault para obtener las últimas versiones