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.
3 Réponses :
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. p>
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. P>
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. P>
Je suis vos étapes, mais dans la fenêtre de sortie de la version, aucun message imprimé.
Utilisez uniquement la méthode Messager.PrintMessage () Code> 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") code> 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 () b> méthode ne fonctionne pas. Merci beaucoup.
Si vous utilisez une LIB Java, vérifiez la configuration du chemin p>
Le processeur d'annotation devrait s'inscrire dans
avec le nom de type complet, par exemple Path-to-Lib \ SRC \ Main \ Ressources \ Meta-Inf \ Services \ Javax.Annotation.Processing.Processeur Code> P>
cn.djzhao.compiler.annotationProcessor code> p>