-1
votes

Comment afficher le message du processeur d'annotation dans le studio Android?

Je veux écrire une démo à l'aide du processeur Java Annotation dans Android Studio, comme Butterknife. Et je veux imprimer des informations dans processus () forte> méthode pour savoir qu'il est exactement exécuté. J'utilise system.out.println () strong> et messager.printMessage strong>, mais je ne sais pas comment afficher ces informations dans Android Studio comme Logcat.

> Task :app:compileDebugJavaWithJavac
Gradle may disable incremental compilation as the following annotation processors are not incremental: lib-compiler.jar (project :lib-compiler).
Consider setting the experimental feature flag android.enableSeparateAnnotationProcessing=true in the gradle.properties file to run annotation processing in a separate task and make compilation incremental.


0 commentaires

3 Réponses :


1
votes

Un processeur d'annoatation fonctionne pendant la phase de construction, pas au moment de l'exécution. La fenêtre LogCat dans Android Studio affiche le journal de débogage d'un périphérique connecté au moment de l'exécution.

Pour afficher les messages imprimés, vous devez passer à la fenêtre de construction (vue -> Windows de l'outil -> Build). Tous les messages relatifs à la phase de construction sont envoyés ici.

Je pense que l'avertissement que vous mentionnez, c'est simplement un avertissement, il ne devrait pas affecter votre processeur d'annotation. Peut-être que vous n'avez pas ajouté l'annotation appropriée, c'est pourquoi vous ne recevez aucune sortie.


8 commentaires

Je suis vos étapes, mais dans la fenêtre de sortie de la version, aucun message imprimé.


Utilisez uniquement la méthode Messager.PrintMessage () pour la sortie et vous devrez appuyer sur la touche Version à bascule du côté gauche de la fenêtre de construction. C'est généralement le premier ou le deuxième bouton. Cela allumera la fenêtre de sortie de la version à partir d'une sortie structurée, à une sortie RAW (Console).


envisagez également d'utiliser system.out.println ()


Cela ne fonctionne pas pour moi, dans ma fenêtre de sortie de construction, affichez uniquement les informations sur la tâche des grades, mais pas les messages de processeur.


J'ai ajouté mes informations de fenêtre de sortie de sortie dans ma question.Merci.


À partir de la sortie que vous avez postée, il apparaît que vous avez deux modules de grade, l'annotation (je suppose que cela contient les annotations) et le processeur (je suppose que c'est la mise en œuvre réelle du processeur d'annotation). Vous devez appliquer le processeur d'annotation à un autre module de grade (un où vous utiliserez les annotations que vous traitez) - par exemple dans un module d'applications. Dans la construction.Gradle du module d'application, vous devrez ajouter quelque chose comme: AnnotationProcessor Project (": processeur") pour utiliser réellement le processeur d'annotation. Alors la sortie sera visilbe


Merci beaucoup de résoudre ma question. Mais j'ai eu un autre problème et j'ai mis à jour ma question. J'espère que vous pourrez sauver ma vie, haha.


J'ai enfin résoudre ce problème pour que je n'ai pas utilisé l'annotation dans mon module d'application, de sorte que processus () méthode ne fonctionne pas. Merci beaucoup.



0
votes

Vos messages ne seront pas imprimés sur la console, mais dans la section Construction. C'est parce que le processeur d'annotation fonctionne sur le processus de construction. Exemple:


0 commentaires

0
votes

Si vous utilisez une LIB Java, vérifiez la configuration du chemin

Le processeur d'annotation devrait s'inscrire dans Path-to-Lib \ SRC \ Main \ Ressources \ Meta-Inf \ Services \ Javax.Annotation.Processing.Processeur

avec le nom de type complet, par exemple cn.djzhao.compiler.annotationProcessor


0 commentaires