2015-09-12 1 views
1

Salut je voulais mettre à jour android-apt dans mon projet de la version 1.4 à 1,7Android mise à jour apt de 1,4 à 1,7 Version

Actuellement, je suis en utilisant auto-service Google 1.0-RC2, donc tout ce que je devais faire est de mettre @AutoService(Processor.class) annotation dans ma classe de processeur d'annotation.

Après la mise à jour android-apt à 1.7 la version de mon processeur d'annotation a cessé de fonctionner. Il semble qu'il ne soit pas appelé pendant la construction.

Je pensais que auto-service peut être le problème. Donc, j'ai fait fichier resources/META-INF/services/javax.annotation.processing.Processor avec le contenu

pl.edu.radomski.navigator.NavigatorAnnotationProcessor 

Malheureusement, il n'a pas aidé du tout.

Si vous voulez voir le code avec android-apt 1.4 et autoservice 1.0-RC2 il est disponible here

est-il un moyen simple de mettre à jour android-apt et de garder le processeur de travail ?

Est-ce faute autoservice 1.0-RC2 ou quelque chose ne va pas avec android-apt?

Répondre

2

Dans 1.7, une modification a été apportée pour ne pas générer automatiquement un projet dépendant défini comme apt, en raison d'effets secondaires indésirables affectant l'ordre de construction.

Dans 1.8 Je vais probablement une meilleure façon de le soutenir, mais dans le même temps vous pouvez configurer le bloc apt pour spécifier que votre processeur doit être exécuté comme ceci:

apt { 
processor "pl.edu.radomski.navigator.NavigatorAnnotationProcessor" 
} 

Notez que est seulement nécessaire dans le cas où votre processeur est dans le même projet que votre application ou votre bibliothèque. La raison en est que le fichier META-INF/services n'est pas lu par javac dans cette configuration car le projet n'est pas packagé à ce stade. L'ajout explicite d'une instruction processor ajoutera le processeur que javac ne trouverait pas autrement.