76 votes

Android - Comment régénérer la classe R ?

Duplicata possible :
Développer pour Android dans Eclipse : R.java ne se génère pas

J'ai importé un projet dans mon IDE Eclipse, mais il me donne une erreur car le fichier R n'est pas généré automatiquement.

Comment puis-je modifier le fichier R pour qu'il corresponde aux exigences de mon projet ?

47voto

Goufalite Points 367

Sur une autre question de stackoverflow Quelqu'un a répondu à cette question : vous devez vous débarrasser des avertissements et des erreurs (syntaxe et liens) dans vos fichiers xml. Ceci en plus de faire un projet propre / build.

Projet -> Nettoyer, et choisissez l'option pour construire le projet.

30voto

Muz Points 1116

Cela m'est arrivé avec une mise en page cassée et tout explose. Détendez-vous, c'est comme cette vieille erreur quand vous avez appris la programmation où vous oubliez un point-virgule et cela génère une centaine d'erreurs. Beaucoup paniquent, appuient sur tous les boutons et ne font qu'empirer les choses.

Solución

  • Assurez-vous que tout ce que le R. n'est pas cassé. S'il est cassé, ADK ne peut pas régénérer R. Corriger toutes les erreurs dans vos fichiers XML .
  • Si vous avez en quelque sorte heurté quelque chose et créé import android.R dans votre activité, l'enlever .
  • Exécuter Projet -> Nettoyer . Cela supprimera et régénérera R et BuildConfig.
  • Assurez-vous que Projet -> Construire automatiquement est coché.
  • Attendez quelques secondes pour que les erreurs disparaissent.
  • Si cela ne fonctionne pas, supprimez tout ce qui se trouve dans le dossier /gen/.
  • Si cela ne fonctionne toujours pas, essayez cliquez avec le bouton droit de la souris sur votre projet -> Outils Android -> Fixer les propriétés du projet .

Que faire si R ne se régénère pas ?

Cela se produit généralement lorsque vous avez un fichier xml cassé.

  • Vérifiez les erreurs dans vos fichiers XML, principalement dans le dossier /res/.
  • Les endroits courants sont /layout/ et /values/, surtout si vous avez changé l'un d'entre eux récemment.
  • Vérifiez AndroidManifest.xml, je trouve que souvent je change une chaîne, et oublie de changer le nom de la chaîne dans AndroidManifest.xml.
  • Si vous ne trouvez pas le problème. clic droit sur /gen/ -> Restaurer à partir de l'historique local... -> cocher R.java -> cliquer sur Restaurer . Cela ne résout pas le problème, mais permet d'éliminer les erreurs supplémentaires afin de faciliter la recherche du problème.

Je sais qu'il y a déjà beaucoup de réponses ici, mais c'est le premier lien sur Google, alors je compile tous les conseils ici et j'espère que cela aidera quelqu'un d'autre qui débute dans ce domaine :)

15voto

zorglub76 Points 2326

Ok, je l'ai réparé :

Lorsque j'ai changé le manifeste pour la version 1.5, des millions d'erreurs sont apparues et une seule n'était pas liée à l'inexistence de la classe R - dans le fichier manifeste, les attributs "targetSdkVersion" et "maxSdkVersion" n'existaient pas dans le sdk 1.5.

A cause de cela, la classe R n'a pas pu générer.

14voto

John Klippenstein Points 141

J'ai eu un problème similaire où le fichier R.java n'était pas régénéré après avoir ajouté quelques icônes et fichiers de mise en page. J'ai essayé de nettoyer et de reconstruire et les choses ont empiré puisque le fichier R.java d'origine avait disparu et n'était toujours pas régénéré. J'ai fini par comprendre qu'il devait y avoir des erreurs de compilation pour le compilateur qui génère R.java et qu'elles n'étaient pas affichées dans la console. Heureusement, j'avais déjà remarqué que

  1. c'est une erreur si un fichier .xml se réfère à un autre qui n'existe pas et que
  2. c'est une erreur d'avoir des lettres majuscules dans vos noms de fichiers (pourquoi c'est interdit, j'ADORE les majuscules).

Quoi qu'il en soit, après avoir renommé mes icônes et mes fichiers .xml en minuscules, puis corrigé toutes les références dans les fichiers .xml, voilà, R.java a été régénéré. Juste à temps pour me sentir bien quand je me suis arrêté pour déjeuner :-)

8voto

Pour générer à nouveau le fichier R :

  1. Modifier quelque chose dans layout->activity_main.xml
  2. Sauvegarder le fichier
  3. Projet->Nettoyage...

Supprimez simplement le fichier R situé dans le répertoire gen, et essayez ensuite Project->Clean. Puis recompilez votre application.

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