web-dev-qa-db-fra.com

Lombok nécessite un traitement d'annotation

J'utilise Android Studio 2.2 Preview 7, et le plugin Lombok a soudainement commencé à dire: Annotation processing seems to be disabled for the project X, et fournissant un lien vers les paramètres.

enter image description here

Le fait de cliquer sur la notification ne me mène pas au bon endroit.

Quelle est la solution pour cela?

36
Janis Peisenieks

Les paramètres ouverts en cliquant sur la notification sont les Per Project _ paramètres, et ceux-ci ne sont pas ce dont vous avez besoin dans ce cas.

Pour résoudre ce problème, allez à

  • File->Other Settings->Default Settings
  • Développer Build, Execution, Deployment
  • Développer Compiler
  • Dans Annotation Processors vérifier Enable annotation processing
  • Vous devrez peut-être rouvrir le projet pour que les paramètres prennent effet.
  • Prendre plaisir

Pour une référence complète - capture d'écran avec l'écran de réglages approprié: enter image description here

75
Janis Peisenieks

Avec les versions plus récentes de gradle, il suffit de taper ces lignes dans le bloc de dépendances build.gradle de l'application:

compile "org.projectlombok:lombok:1.16.16"
annotationProcessor "org.projectlombok:lombok:1.16.16"  

Synchronisez le projet avec le diplôme et cela fonctionnera.

16
Andras Kloczl

Premièrement, je ne pense pas que le fait de retirer votre projet de l'écran d'accueil puisse avoir un effet. Pensez-y, supprimer votre projet des "projets récents" sur cet écran ne le recrée pas, comment la modification des paramètres par défaut pourrait-elle avoir un effet sur n projet existant?

Pour activer le traitement des annotations dans un projet existant, vous n'avez rien à supprimer. Aller à YourAwesomeProject/.idea/compiler.xml et assurez-vous que vous avez la valeur "true" dans l'attribut suivant: /project/annotationProcessing/profile@enabled.

Comme ça:

<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="CompilerConfiguration">
    ...
    <annotationProcessing>
      <profile default="true" name="Default" enabled="true"><!-- here -->
        <processorPath useClasspath="true" />
      </profile>
    </annotationProcessing>
  </component>
</project>

Vous devrez peut-être Fichier -> Invalider caches/redémarrer

14
Jaroslav Záruba

Pour ceux qui ont le même problème en utilisant Android Studio 2.4+, ce n'est pas résolu par les astuces ci-dessus, à l'exception de la réponse de Janis Peisenieks.

Ouvrez votre Intellij IDEA 2017/Android Studio 2.4+ et accédez à (Windows)

  1. Fichier-> Autres paramètres-> Paramètres par défaut
  2. Développer Construction, exécution, déploiement
  3. Développez le compilateur et choisissez Processeurs d'annotation
  4. Assurez-vous d’avoir activé le traitement des annotations et ". Obtenir les processeurs du chemin de classe du projet " activée
  5. Enfin, mettez à jour le fichier build.gradle de votre projet avec l'extrait de code ci-dessous. Ignore le conseil qu'il est déconseillé, car il n'utilise pas (jusqu'à présent. Voir issue ).

    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath = true
            }
        }
    }
    

Découvert qu'il existe un moyen très simple de procéder sans toutes les modifications ci-dessus!

Si vous configurez votre processeur dans le dégradé comme lombok, vous n’utiliserez que fourni ou testCompile . Vous devez ajouter ceci en utilisant annotationProcessor ainsi que dans vos dépendances. Exemple:

dependencies {
    provided "org.projectlombok:lombok:1.16.16"
    annotationProcessor "org.projectlombok:lombok:1.16.16"
}

Merci à Jack Wharton pour butterknife où j’ai compris comment il l’a résolu.

Astuce : Vous devrez peut-être invalider le cache et le redémarrer pour le faire fonctionner pour certains processeurs d'annotation tels que lombok.

8
Emanuel S

La réponse marquée était probablement suffisante à l'époque mais je me suis un peu battu avec Android studio 3 et lombok 1.16.18. Quoi qu'il en soit, la suite a fonctionné pour moi.

dans app> build.gradle ajouter les suivants

compileOnly 'org.projectlombok:lombok:1.16.18'
annotationProcessor 'org.projectlombok:lombok:1.16.18'

vous pouvez commencer à avoir d'autres erreurs, donc si vous dans votre MyApplication> lombok.config ajouter les lignes suivantes

lombok.addGeneratedAnnotation = false
lombok.anyConstructor.suppressConstructorProperties = true

si vous n'avez pas lombok.config vient de l'ajouter

Les propositions ci-dessus ont été suggérées par le développeur de lombok dans les articles suivants
addGeneratedAnnotation
suppressConstructorProperties

5
Mubashar

Le guide d'installation du site Web de Lombok ( lombok configuré pour Android ) indique que nous devrions faire deux choses.

1, installez le plugin Lombok

2, ajouter des dépendances de niveaux

dependencies {
  compileOnly 'org.projectlombok:lombok:1.18.6'
  annotationProcessor 'org.projectlombok:lombok:1.18.6'
}

Mais pour moi, le plugin provoque le problème. Après avoir désactivé le plugin, l'erreur a disparu et Lombok fonctionne toujours.

3
ssynhtn

Suivez ce que dit le manuel d'installation:

Gradle Assurez-vous que la version de votre Android plug-in est> = 0.4.3. Utilisez le plug-in gradle-lombok. Si vous ne souhaitez pas utiliser le plug-in, ajoutez Lombok au bloc des dépendances de votre application. (requiert Gradle v2.12 ou plus récent):

dependencies {    
 compileOnly "org.projectlombok:lombok:1.16.18" 
}

Android Studio Suivez les instructions précédentes (Gradle). En plus de configurer correctement votre projet Gradle, vous devez ajouter le plug-in Lombok IntelliJ pour ajouter la prise en charge de Lombok à Android Studio:

  1. Allez dans Fichier> Paramètres> Plugins
  2. Cliquez sur Parcourir les dépôts ...
  3. Recherche de plugin Lombok
  4. Cliquez sur le plug-in Installer Redémarrer Android Studio

https://projectlombok.org/setup/Android

0
MSS

À partir de Android Studio v3.5 (août 2019) et les versions antérieures, il n'y avait pas de paramètre pour le processeur d'annotation. Il suffit toutefois de définir dans build.gradle dans la section des dépendances:

dependencies {
...
    compileOnly 'org.projectlombok:lombok:1.18.8'
    annotationProcessor 'org.projectlombok:lombok:1.18.8'
...
}

Si Android studio se plaint toujours de "Lombok nécessite le traitement des annotations", pour moi, le problème est la réinstallation du plug-in Lombok et "Invalidate Caches/Restart".

0
dobrivoje