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?
-
Eliminar el complemento apt
-
Cambio:
apt -> compilar
testApt -> testAnnotationProcessor
androidTestApt -> androidTestAnnotationProcessor
-
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
ytestApt
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