44 votes

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 à fournir un lien vers les paramètres.

entrez la description de l'image ici

Cliquer sur la notification ne m'amène pas au bon endroit.

Quelle est la solution à cela?

89voto

Janis Peisenieks Points 1458

Les Paramètres de l'ouvrir en cliquant sur la notification sont l' Per Project paramètres, et ceux qui ne sont pas ce dont vous avez besoin dans ce cas.

Pour résoudre ce problème, accédez à

  • File->Other Settings->Default Settings
  • Développez Build, Execution, Deployment
  • Développez Compiler
  • En Annotation Processors vérification Enable annotation processing
  • Vous pouvez avoir besoin de ré-ouvrir le projet afin d'obtenir les paramètres prennent effet.
  • Profitez de

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

19voto

Andras Kloczl Points 5444

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

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

Synchronisez le projet avec le gradle et cela fonctionnera.

16voto

Jaroslav Záruba Points 1059

Tout d'abord, je ne pense pas que la suppression de votre projet à partir de l'écran d'accueil peut avoir aucun effet. Pensez-y, la suppression de votre projet à partir de "projets récents" sur l'écran de ne pas re-créer, comment pourrait-modification des paramètres par Défaut ont aucun effet sur un projet existant?

Pour activer l'annotation de traitement dans un projet existant, vous n'avez pas besoin de supprimer quoi que ce soit. Aller à l' YourAwesomeProject/.idea/compiler.xml et assurez-vous d'avoir la valeur "true" dans l'attribut suivant: /project/annotationProcessing/profile@enabled.

Comme ceci:

<?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 pourriez avoir besoin de Fichiers -> Invalider les Caches / Redémarrer

7voto

Emanuel Seibold Points 1242

Pour ceux qui ont le même problème à l'aide d'Android Studio 2.4+ sa ne résout pas le faire tous les conseils ci-dessus à l'exception de Janis Peisenieks réponse.

Ouvrez votre Intellij IDEA 2017 / Android Studio 2.4+ et aller à (Windows)

  1. Fichier->Autres Paramètres->Paramètres Par Défaut
  2. Développez Construire, L'Exécution, Le Déploiement
  3. Développez Compilateur et choisissez l'Annotation Processors
  4. Assurez-vous que vous avez Activer l'annotation de traitement et "Obtenir les transformateurs de projet classpath" activé
  5. Dernier mais non le moindre mise à jour de vos projets de construction.gradle fichier avec l'extrait de code ci-dessous. Ignorer le soupçon que sa obsolète, puisqu'il ne l'utilise pas (jusqu'à présent. Voir question).

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

Découvert qu'il y est une façon très simple de le faire sans tous ces changements ci-dessus!

Si vous définissez votre processeur dans le gradle comme lombok vous ne les utilisez uniquement fournis ou testCompile. Vous avez besoin d'ajouter cela à l'aide de annotationProcessor aswell 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 a résolu.

Astuce: Vous pouvez avoir besoin pour invalider le cache et redémarrer pour qu'il fonctionne pour certains d'annotation des processeurs comme lombok.

5voto

Mubashar Ahmad Points 2788

Probablement marqué réponse était suffisante à l'époque mais j'ai un peu de mal avec android studio 3 et lombok 1.16.18. De toute façon la suite travaillé pour moi

en app > build.gradle ajoutez ce qui suit

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

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

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

si vous n'avez pas lombok.config juste ajouté

Ci-dessus ont été suggérées par le développeur de lombok, dans les posts suivants
addGeneratedAnnotation
suppressConstructorProperties

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X