La magie derrière R.java fichier
Récemment, j'ai eu quelques problèmes avec R.java fichier. Maintenant, j'ai décidé de faire une sauvegarde et supprimer le fichier pour voir ce qui se passe.
Rien ne s'est passé, j'ai donc créé un vide R.java fichier et espérer pour le mieux. Maintenant Eclipse semble comprendre que le fichier a été altéré, et même une mise en garde:
R.java was modified manually! Reverting to generated version!
Et c'est tout. J'ai essayé de la construire manuellement, mais n'ai obtenu aucun résultat.
Donc, j'ai deux questions:
- que dois-je faire à la force de l'Éclipse de régénérer le fichier
- ce qui se passe ici? Comment est le fichier créé, où est le code qui génère le fichier?
Je vous serais reconnaissant de toute aide. Comme d'habitude, le problème est survenu quelques jours seulement avant la date limite 🙂
Vous devez vous connecter pour publier un commentaire.
J'ai eu un problème l'obtention de mon application Android pour compiler, avec apparemment inexplicables des erreurs sur l'incapacité à générer R.java.
Le problème a été causé par ma précédemment tuer l'émulateur Android lors de la compilation. Ne le faites pas! Un indice a été l'apparition de plusieurs gauche sur *.out.xml les fichiers.
La solution a été de sélectionner le projet, cliquez sur Projet->Propre, et puis supprimer manuellement tous les *.out.xml fichiers. Alors seulement je pourrais cliquez sur Exécuter->Exécuter et avoir un développement réussi.
Encore une chose: je suis à l'aide d'Eclipse. J'ai dû faire en sorte que le projet a été sélectionné dans l'Explorateur de packages, et pas juste un hasard fichier source. Facile de ne pas remarquer!
R.java est généré automatiquement à construire. Son contenu est basé sur les fichiers de ressources (y compris les mises en page et les préférences).
Quand vous l'avez supprimé, il a été recréé, mais si vous créez votre propre, vous aurez des ennuis comme le système de construction, ne le remplacera pas.
Vous pouvez simplement le supprimer à nouveau (manuellement ou par le choix du Projet->Nettoyer) et la reconstruction de votre programme.
J'ai eu ce problème plusieurs fois, et la plupart du temps elle est causée par une erreur dans la "res" des fichiers, vérifier que tout est OK dans toutes vos res de fichiers, principalement XML, et après que vous pouvez construire.
Par exemple, les deux causes les plus courantes de ce problème peut être:
N'a pas correctement orthographier le nom d'une propriété dans un Style dans un fichier XML.
Ne pas fermer correctement une chaîne de caractères dans le fichier XML d'un fichier de paramètres régionaux.
J'ai trouvé le problème, j'ai créé un 9patch image avec le patch de la zone définie uniquement sur l'axe des Y (j'ai essayé pour empêcher le redimensionnement sur l'autre).
La question demeure: Pourquoi n'est-il pas un avertissement au sujet de l'erreur? Ou si il est - où est-il enterré?
Désolé, mais essayez de vérifier pour la sortie d'Eclipse. Peut-être vous avez quelques erreurs qui empêche Eclipse pour finir de construire des proccess(vérifiez votre AndroidManifest.xml est-il correct?).Je veux dire, que vous devez vérifier tous vos fichiers de ressources(string.xml, mises en page, ...) et les interfaces(*.aidl), peut-être il y a quelques problèmes(incompatible syntaxe, ou de quelque chose....) qui empêchent eclipse pour générer R.java.
s why eclipse can
t générer R.java.J'ai eu le même problème et c'était que j'avais nommé un fichier de ressources (un .png image) à l'aide de lettres majuscules. (ImageButton001.png au lieu de imagebutton001.png).
Après changer le nom du fichier à ma R.java revint.
Rgards,
Juan
Si il y a une insuffisance de la mémoire de l'outil de génération en silence à l'échec (Eclipse ne pas afficher les erreurs ou de signaler quoi que ce soit dans le journal des erreurs). Fermez les autres applications ouvertes (par exemple, l'émulateur et navigateur) puis ajouter un espace pour le manifeste de l'application fichier et l'enregistrer.
Comme ponkin dit - vous avez probablement un problème unique qui provoque R de ne pas les re-générer lui-même, en raison de laquelle vous avez maintenant un million et un problème.
Ne pas essayer de créer en classe R vous-même. Essayez de penser à la dernière XML que vous avez été de jouer avec, et de vérifier pour les erreurs de
J'ai eu le même problème ici
Assurez-vous il n'y a pas d'erreurs est votre fichier Manifeste.
Si vous supprimez la chaîne de ressource app_name dans /res/values/strings.xml il ne sait pas comment générer R.java la droite.
J'ai trouvé ce problème lors de la HelloSpinner tutoriel.
J'ai trouvé que des ressources était à l'origine d'un problème. Dès que j'ai supprimé la ressource R.java a été généré.
J'ai eu ce problème, pour reconstruire
R.java
j'ai coupé le code dans le fichier xml, je viens de travailler sur (ou essayer d'autres si cela ne fonctionne pas), de supprimer le fichier puis de créer un autre avec le même nom et coller le code de revenir. Espérons que cette aide.Quelque chose qui peut être bon à savoir, c'est que si un fichier XML contient un ?, puis
R.java
n'est pas régénéré et l'erreur n'est pas indiqué dans le fichier XML (parfois, il s'affiche après un certain temps)Je vous avez une ligne similaire à:
< string name="questionmark"\>?< /string> <br>
essayer de changer la ? pour quelque chose d'autre et de voir ce qui se passe à l'
R.java
fichier - a fonctionné pour moiJ'ai eu un problème similaire, j'avais renommé un .fichier wav dans le Raw dossier avec une lettre majuscule. Quand j'ai changé de bas de casse, nettoyé le projet et qu'il reconstruit
R.java
amende.Que d'autres ont dit, rester à l'écart de la création de votre propre
R.java
fichier. J'ai rencontré le même problème lorsque j'ai commencé avec Android, et il a fallu un certain temps pour comprendre ce qui a causé par des erreurs de compilation.Ce que vous tentiez de le faire avec le
R.java
fichier?J'ai eu le même problème. Je suis juste allé à:
et choisi le bon Émulateur pour mon projet, j'ai eu 3 différents à choisir en ce moment. J'ai réalisé que j'ai changé l'Émulateur dans certains moment donné. Donc, essayez de changer l'Émulateur, qui peut vous aider!
Bonne chance
J'ai eu le même problème avec IntelliJ. Le problème était que j'avais app_name définies deux fois, dans
strings.xml
Pour une raison quelconque, l'IDÉE inspections n'ont pas ce pick up automatiquement.J'ai lu cela sur un autre site et il m'a aidé:
"Si cela ne résout pas votre problème, essayez de modifier vos
AndroidManifest.xml
(il suffit d'ajouter un espace et de l'enregistrer). J'ai entendu dire que la force de laR.java
à reconstruire. "Donc, il suffit d'ajouter un espace dans le fichier manifeste et puis de reconstruire!
Comme une note de côté, généralement ceux *.out.xml les fichiers sont générés en essayant de construire votre projet tout en un fichier xml est concentré dans l'éditeur
J'ai eu le même problème.Projet de nettoyage n'a pas résolu le problème et il n'y a pas d'erreur dans le code ou les majuscules ou les espaces dans les noms de fichier.
La solution était d'aller à une fenêtre pop-up qui est venu lorsque vous choisissez de PROJET-->NETTOYER et puis Décochez la case "lancer un build immédiatement" option. Nettoyez le projet. Fermez et rouvrez Eclipse, puis la construction du projet (PROJET-->BUILD).
La question demeure de savoir pourquoi la simple propre et construire sans fermer l'Éclipse n'a pas travaillé.