J'essaie d'ajouter un référentiel Maven à mon projet Android Studio . Lorsque je synchronise un projet Gradle, tout va bien. Cependant, chaque fois que j'essaie de construire mon apk, j'obtiens cette erreur:
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.
Le lien inclus ( https://developer.Android.com/r/tools/annotation-processor-errormessage.html ) dans l’erreur 404s est donc inutile.
J'ai activé le traitement des annotations dans les paramètres du studio Android et ajouté includeCompileClasspath = true
à mes options de traitement des annotations. J'ai également essayé d'ajouter classindex
, classindex-3.3
et classindex-3.3.jar
au nom de FQ du processeur, mais cela n'a pas aidé non plus.
ce sont les lignes que j'ai ajoutées au build.gradle par défaut sous dependecies:
dependencies {
...
compile group: 'com.skadistats', name: 'clarity', version:'2.1.1'
compile group: 'org.atteo.classindex', name: 'classindex', version:'3.3'
}
À l'origine, je n'avais ajouté que la «clarté», parce que c'est celle qui m'importait, mais j'ai ajouté l'entrée «classindex» dans l'espoir que cela résoudrait le problème. Supprimer "clarté" et conserver "classindex" me donne exactement la même erreur.
Je ne connais pas trop Gradle/Maven, toute aide serait la bienvenue.
Pour corriger l'erreur, modifiez simplement la configuration de ces dépendances pour utiliser annotationProcessor. Si une dépendance inclut des composants qui doivent également figurer sur le chemin de classe de compilation, déclarez cette dépendance une seconde fois et utilisez la configuration de dépendance de compilation.
Par exemple:
annotationProcessor 'com.jakewharton:butterknife:7.0.1'
compile 'com.jakewharton:butterknife:7.0.1'
Ce lien le décrit en détail: https://developer.Android.com/studio/preview/features/new-Android-plugin-migration.html#annotationProcessor_config
Snippet pertinent inclus pour la complétude.
Utiliser la configuration de dépendance du processeur d'annotation
Dans les versions précédentes du plugin Android pour Gradle, les dépendances sur les classpath de compilation ont été automatiquement ajoutés au processeur classpath. En d’autres termes, vous pouvez ajouter un processeur d’annotation au fichier compiler classpath et cela fonctionnerait comme prévu. Cependant, cela provoque un impact significatif sur les performances en ajoutant un grand nombre de dépendances inutiles au processeur.
Lors de l'utilisation du nouveau plugin, des processeurs d'annotation doivent être ajoutés au fichier chemin de classe du processeur utilisant la dépendance annotationProcessor configuration, comme indiqué ci-dessous:
dépendances { ... annotationProcessor 'com.google.dagger: dagger-compiler:'}
Le plugin suppose qu'une dépendance est un processeur d'annotation si son JAR Le fichier contient le fichier suivant: META - INF/services/javax.annotation.processing.Processor. Si le plugin détecte les processeurs d'annotation sur le chemin de classe de compilation, votre construction échoue et vous obtenez un message d'erreur qui répertorie chaque annotation processeur sur le classpath de compilation. Pour corriger l'erreur, changez simplement la configuration de ces dépendances pour utiliser annotationProcessor. Si une dépendance inclut des composants qui doivent également figurer sur la compilation classpath, déclarez cette dépendance une deuxième fois et utilisez la compilation configuration de dépendance.
J'étais avec une erreur similaire. Je suis les instructions sur le lien Google et cela fonctionne.
essayez d’ajouter les instructions suivantes à votre fichier de classement d’application:
defaultConfig {
applicationId "com.yourdomain.yourapp"
minSdkVersion 17
targetSdkVersion 25
versionCode 1
versionName "1.0"
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
Attention to -> includeCompileClasspath false
Ajoutez ce code à votre application Gradle
defaultConfig{
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}
}
J'ai trouvé la solution ici https://github.com/JakeWharton/butterknife/issues/908
Il suffit de mettre à jour votre couteau à beurre avec le processeur Annotation
compile 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
j'espère que ça t'aide
Ajouter ceci dans defaultConfig
Android.defaultConfig.javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = true
Dans le build.gradle (application du module)
appliquer le plugin:
apply plugin: 'com.jakewharton.butterknife'
Ajoutez les lignes suivantes dans la section des dépendances:
annotationProcessor 'com.jakewharton:butterknife-compiler:8.7.0'
implementation 'com.jakewharton:butterknife:8.7.0'
dans le build.gradle (Project: nomProjet), ajoutez le classPath dans les dépendances comme ceci:
classpath 'com.jakewharton:butterknife-gradle-plugin:8.4.0'
Cela résoudra ce problème . Au cas où sinon ajouter maven:
maven {
url 'https://maven.google.com'
}
Si vous avez des dépendances sur le chemin de classe de compilation qui incluent des processeurs d'annotation dont vous n'avez pas besoin, vous pouvez désactiver le contrôle d'erreur en ajoutant les éléments suivants à votre fichier build.gradle. N'oubliez pas que les processeurs d'annotation que vous ajoutez au chemin de classe de compilation ne sont toujours pas ajoutés au chemin de classe de processeur.
Android {
...
defaultConfig {
...
javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath false
}
}
}
}
Si vous rencontrez des problèmes pour migrer vers la nouvelle stratégie de résolution des dépendances, vous pouvez rétablir le comportement sur celui du plug-in Android 2.3.0 en définissant includeCompileClasspath true. Toutefois, la restauration du comportement vers la version 2.3.0 n'est pas recommandée et l'option de le faire sera supprimée lors d'une prochaine mise à jour.
Voir ici https://developer.Android.com/r/tools/annotation-processor-error-message.html pour plus de détails.
Si rien ne fonctionne, les réponses ci-dessus ajoutent également l'étape suivante, spécialement pour la nouvelle mise à jour d'Android Studio 3.0.1:
Android Studio 3.0.1:
Ajoutez ceci à votre fichier app.gradle dans les dépendances:
classpath 'com.neenbedankt.gradle.plugins:Android-apt:1.8'
Dans les versions précédentes du plugin, les dépendances sur le chemin de classe de compilation étaient automatiquement ajoutées au chemin de classe du processeur. C'est-à-dire que vous pourriez ajouter un processeur d'annotation au chemin de la compilation et qu'il fonctionnerait comme prévu. Cependant, cela a un impact significatif sur les performances en ajoutant un grand nombre de dépendances inutiles au processeur.
Lorsque vous utilisez le plug-in Android 3.0.0, vous devez ajouter des processeurs d'annotation au chemin de classe du processeur à l'aide de la configuration de dépendance annotationProcessor, comme indiqué ci-dessous:
dependencies {
...
annotationProcessor 'com.google.dagger:dagger-compiler:<version-number>'
implementation 'com.google.dagger:dagger-compiler:<version-number>'
}