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


101

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

ingrese la descripción de la imagen aquí

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

ingrese la descripción de la imagen aquí

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

Respuestas:


179

El android-aptcomplemento ha quedado obsoleto .
Consulte aquí la guía de migración :

A partir de la versión 2.2 del complemento de Android Gradle, todas las funciones que anteriormente proporcionaba android-apt ahora están disponibles en el complemento de Android.

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

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

  • Asegúrate de estar en el complemento de Android Gradle 2.2 o más reciente.
  • Elimina el android-aptcomplemento de tus scripts de compilación
  • Cambiar todos apt, androidTestApty testAptdependencias 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 de Android Gradle hay una verificación explícita para 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 android-aptfunciona, que es el motivo de esa verificación.


¡Gracias! No sabía que apt estaba obsoleto.
— Bronx

1
Y en el complemento de Android Gradle, Google tiene una verificación explícita, que es lo que está viendo. Las futuras versiones de Android Gradle no serán compatibles con la forma en que android-aptfunciona, que es el motivo de esa comprobación.
— Botteaap

donde esta el cheque?
— ericn

No tengo ningún apt pero sigo recibiendo esta advertencia. EDITAR: Resulta que era reino
— behelit

No vi NDROID-pt en mi código en ninguna parte, pero recibí un error. ¿Cuál podría ser el problema?
— Mubashar

47

Para mí, estaba teniendo este error mientras usaba la Vaultbiblioteca de Contentful 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 debes hacer es BORRAR apply plugin: 'com.neenbedankt.android-apt'

y luego CAMBIAR :

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


15
  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


6

Aprovechando a @Gabriele Mariotti aquí, ya que su respuesta es bastante acertada e implica esto, pero no lo dice. Gradle tampoco sugiere que esto sea una opción válida, aunque también lo es. El equivalente de prueba para androidTestApty testAptes androidTestAnnotationProcessory 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"

1

En caso de que el procesador de anotaciones tenga argumentos, es posible que también deba cambiar esto:

apt {
    arguments {
        KEY "VALUE"
    }
}

a esto:

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ['KEY': 'VALUE']
            }
        }
    }
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.