10 votes

Le framework Android Annotations ne semble pas générer quoi que ce soit

Je suis en train d'essayer d'utiliser le cadre d'annotations Android parce qu'il semble assez puissant. Je suis assez bloqué dans la configuration de mon premier projet basé sur celui-ci. J'ai suivi chaque étape du wiki mais aucun fichier n'est généré après une construction.

Donc quand je demande une classe générée à partir du manifeste:

Je reçois une exception:

java.lang.ClassNotFoundException

Mon activité est exactement la même que dans le wiki:

@EActivity(R.layout.main)
public class MyActivity extends Activity {

    @ViewById
    EditText myInput;

    @ViewById(R.id.myTextView)
    TextView textView;

    @Click
    void myButton() {
         String name = myInput.getText().toString();
         textView.setText("Bonjour "+name);
    }
}

Des idées?

MODIFIER : Je viens de découvrir qu'un répertoire ".apt_generated" est créé mais il est vide après la construction.

4voto

Piwaï Points 2891

Cela semble être un bug d'AndroidAnnotations, et devrait être signalé sur le suivi des bugs dédié, ici : http://code.google.com/p/androidannotations/issues/entry. Vous pouvez également utiliser la liste de diffusion AndroidAnnotations, http://groups.google.com/group/androidannotations

Tout d'abord, j'ai quelques questions :

Quel IDE utilisez-vous : Eclipse, Netbeans, IntelliJ ? Quelle version ?

Utilisez-vous Maven, Ant, ou seulement votre IDE pour construire le projet ?

Votre problème peut être dû à quelques choses : le traitement des annotations n'est pas déclenché, un bug dans AA, ou les fichiers générés dans un dossier qui ne fait pas partie du classpath.

Dans Eclipse, vous pouvez obtenir plus d'informations depuis la vue "Window > Show View > Error Log". Si le traitement des annotations est déclenché, vous devriez voir des messages concernant AndroidAnnotations.

0voto

Stan Lin Points 780

Pour les autres personnes qui rencontrent ce problème et que la réponse principale ne fonctionne pas, exécutez une construction (build) puis recherchez le fichier androidannotations.log quelque part dans le projet. Ce fichier journal est généré et peut donner une indication sur ce qui ne va pas.

Pour ma part, j'avais un message d'avertissement indiquant qu'il ne pouvait pas localiser AndroidManifest.xml. Même si cela semblait être juste un avertissement, c'était en réalité la cause de l'erreur... Le fait de ne pas trouver mon fichier AndroidManifest.xml a entraîné le fait qu'il n'a pas généré certaines des classes qu'il aurait dû générer.

Vérifiez si vous avez le fichier xml. Si ce n'est pas le cas, la solution est évidente. Si vous l'avez, la raison typique pour laquelle AA ne peut pas trouver le fichier est qu'il se trouve dans un emplacement non standard -- AA vérifie récursivement les répertoires parent au-dessus de celui où il génère des fichiers pour ce fichier xml et échouera s'il n'est pas là. Dans mon cas, mon AndroidManifest.xml se trouvait dans [racine du projet]/app/src/main ce qui n'est pas un dossier ancêtre direct, c'était donc le problème.

Vous pouvez spécifier où se trouve votre fichier xml dans votre build.gradle de projet :

android {
    defaultConfig {
        javaCompileOptions {
            annotationProcessorOptions {
                arguments = ["androidManifestFile": "spécifier_emplacement_du_AndroidManifest.xml_ici"]
            }
        }
    }
}

}

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