android - google - Configuración del procesador de anotaciones explícito
gradle version android studio (9)
Agregue este código a su aplicación gradle
defaultConfig{
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
}
Encontré la solución aquí https://github.com/JakeWharton/butterknife/issues/908
Estoy intentando agregar un repositorio maven a mi proyecto de Android Studio. Cuando hago una sincronización de proyecto Gradle, todo está bien. Sin embargo, cada vez que intento compilar mi apk, aparece este error:
Execution failed for task '':app:javaPreCompileDebug''.
> Annotation processors must be explicitly declared now. The following dependencies on
the compile classpath are found to contain annotation processor. Please add them to
the annotationProcessor configuration.
- classindex-3.3.jar
Alternatively, set android.defaultConfig.javaCompileOptions.annotationProcessorOptions
.includeCompileClasspath = true to continue with previous behavior. Note that this
option is deprecated and will be removed in the future.
See https://developer.android.com/r/tools/annotation-processor-error-message.html for more details.
El enlace incluido ( https://developer.android.com/r/tools/annotation-processor-error-message.html ) en el error 404s no es de ayuda.
He habilitado el procesamiento de anotaciones en la configuración de Android Studio, y agregué
includeCompileClasspath = true
a mis opciones de Procesador de anotaciones.
También he intentado agregar
classindex
,
classindex-3.3
y
classindex-3.3.jar
al nombre del procesador FQ, pero eso tampoco ayudó.
Estas son las líneas que he agregado al build.gradle predeterminado bajo dependencias:
dependencies {
...
compile group: ''com.skadistats'', name: ''clarity'', version:''2.1.1''
compile group: ''org.atteo.classindex'', name: ''classindex'', version:''3.3''
}
Originalmente solo tenía la "claridad" agregada, porque esa es la que me importa, pero agregué la entrada "classindex" con la esperanza de que lo solucione. Eliminar "claridad" y mantener "classindex" me da exactamente el mismo error.
No estoy muy familiarizado con gradle / maven, por lo que agradecería cualquier ayuda.
Agregue esto en
defaultConfig
android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
En el build.gradle (aplicación de módulo)
-
aplicar el complemento:
apply plugin: ''com.jakewharton.butterknife''
-
Agregue las siguientes líneas en la sección de dependencias:
annotationProcessor ''com.jakewharton:butterknife-compiler:8.7.0'' implementation ''com.jakewharton:butterknife:8.7.0''
en build.gradle (Project: projectName), agregue el classPath en las dependencias de esta manera:
classpath ''com.jakewharton:butterknife-gradle-plugin:8.4.0''
Solucionará este problema. En caso de que no, entonces agregue maven:
maven {
url ''https://maven.google.com''
}
En versiones anteriores del complemento, las dependencias en el classpath de compilación se agregaban automáticamente al classpath del procesador. Es decir, podría agregar un procesador de anotaciones a la ruta de clase de compilación y funcionaría como se esperaba. Sin embargo, esto causa un impacto significativo en el rendimiento al agregar una gran cantidad de dependencias innecesarias al procesador.
Al usar el complemento de Android 3.0.0, debe agregar procesadores de anotación al classpath del procesador mediante la configuración de dependencia annotationProcessor, como se muestra a continuación:
dependencies { ... annotationProcessor ''com.google.dagger:dagger-compiler:<version-number>'' implementation ''com.google.dagger:dagger-compiler:<version-number>'' }
Estaba con un error similar. Sigo las instrucciones en el enlace de Google y funciona.
intente agregar las siguientes instrucciones al archivo gradle de su aplicación:
defaultConfig {
applicationId "com.yourdomain.yourapp"
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
Atención a -> includeCompileClasspath false
Para corregir el error, simplemente cambie la configuración de esas dependencias para usar annotationProcessor. Si una dependencia incluye componentes que también deben estar en el classpath de compilación, declare esa dependencia por segunda vez y use la configuración de dependencia de compilación.
Por ejemplo:
annotationProcessor ''com.jakewharton:butterknife:7.0.1''
compile ''com.jakewharton:butterknife:7.0.1''
Este enlace lo describe en detalle: https://developer.android.com/studio/preview/features/new-android-plugin-migration.html#annotationProcessor_config
Fragmento relevante incluido para completar.
Use la configuración de dependencia del procesador de anotaciones
En versiones anteriores del complemento de Android para Gradle, las dependencias en el classpath de compilación se agregaban automáticamente al classpath del procesador. Es decir, podría agregar un procesador de anotaciones a la ruta de clase de compilación y funcionaría como se esperaba. Sin embargo, esto causa un impacto significativo en el rendimiento al agregar una gran cantidad de dependencias innecesarias al procesador.
Al usar el nuevo complemento, los procesadores de anotación deben agregarse a la ruta de clase del procesador mediante la configuración de dependencia ancessationProcessor, como se muestra a continuación:
dependencias {... annotationProcessor ''com.google.dagger: dagger-compiler:''}
El complemento supone que una dependencia es un procesador de anotaciones si su archivo JAR contiene el siguiente archivo: META-INF / services / javax.annotation.processing.Processor. Si el complemento detecta procesadores de anotación en el classpath de compilación, su compilación falla y aparece un mensaje de error que enumera cada procesador de anotación en el classpath de compilación. Para corregir el error, simplemente cambie la configuración de esas dependencias para usar annotationProcessor. Si una dependencia incluye componentes que también deben estar en el classpath de compilación, declare esa dependencia por segunda vez y use la configuración de dependencia de compilación.
Si nada funciona de las respuestas anteriores, agregue el siguiente paso también, especialmente para la nueva actualización de Android Studio 3.0.1:
Android Studio 3.0.1:
Agregue esto a su archivo app.gradle en dependencias:
classpath ''com.neenbedankt.gradle.plugins:android-apt:1.8''
Si tiene dependencias en el classpath de compilación que incluyen procesadores de anotaciones que no necesita, puede deshabilitar la verificación de errores agregando lo siguiente a su archivo build.gradle. Tenga en cuenta que los procesadores de anotaciones que agrega a la ruta de clase de compilación aún no se agregan a la ruta de clase del procesador.
android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}
Si tiene problemas para migrar a la nueva estrategia de resolución de dependencia, puede restaurar el comportamiento al complemento de Android 2.3.0 configurando includeCompileClasspath true. Sin embargo, no se recomienda restaurar el comportamiento a la versión 2.3.0, y la opción de hacerlo se eliminará en una actualización futura.
Vea aquí https://developer.android.com/r/tools/annotation-processor-error-message.html para más detalles
Simplemente actualice su cuchillo de mantequilla con el procesador de anotación
compile ''com.jakewharton:butterknife:8.8.1''
annotationProcessor ''com.jakewharton:butterknife-compiler:8.8.1''
espero que sea de ayuda