J'ai découvert que mon R.java n'est jamais mis à jour, donc il ne contient pas d'informations sur mes nouvelles ressources, j'ai donc décidé de le supprimer et j'ai pensé qu'Eclipse en générerait une nouvelle. Mais cela ne s'est pas produit et je n'ai plus R.java maintenant. Comment puis-je en régénérer un?
J'utilise Windows 7.
D'après l'un des commentaires: "Faire Project -> Clean est ce qui m'a causé le problème. Le nettoyage supprime R.java ... et pour une raison quelconque, le plugin ne régénère pas le fichier."
android
eclipse
r.java-file
Peter Mortensen
la source
la source
Réponses:
Ce site propose:
...et...
Ce site propose une autre solution.
la source
R.java
, au lieu de le régénérer. stackoverflow.com/questions/13065425/…J'ai trouvé que ça m'arrivait avec une mise en page cassée et tout explose. Détendez-vous, c'est comme cette vieille erreur lorsque vous avez appris la programmation C pour la première fois où vous oubliez un point-virgule et cela génère une centaine d'erreurs. Beaucoup de panique, appuyez sur tous les boutons, et aggrave les choses.
Solution
R.
liens ne sont pas rompus. Corrigez toutes les erreurs dans vos fichiers XML . Si quelque chose dans les ADK est cassé,R
ne se régénérera pas.import android.R
dans votre activité, supprimez-le .Menu -> Project -> Build Project
.Que faire si R ne se régénère pas
Cela se produit généralement lorsque vous avez un fichier XML cassé.
/res/
dossier/layout/
et/values/
, surtout si vous en avez changé un récemmentAndroidManifest.xml
. Je trouve que souvent je change une chaîne et oublie de changer le nom de la chaîneAndroidManifest.xml
.Android SDK Build-tools
est installé. Fenêtre -> Android SDK Manager -> Tools -> Android SDK Build-toolsAndroid SDK Tools
, vous mettez également à jour leAndroid SDK Platform-tools
etAndroid ADK Build-tools
. La construction échoue silencieusement si elles ne correspondent pas.la source
J'ai eu le même problème. Lorsque je l'ai vérifié, j'ai constaté que le nom de la ressource XML sous mise en page n'avait pas la bonne convention de dénomination. Il y avait des majuscules. Je l'ai donc renommé pour que toutes les lettres soient en minuscules et la magie a fonctionné.
la source
L'une des raisons pour lesquelles la classe R. peut disparaître soudainement est qu'il y a des erreurs dans vos fichiers XML. Par exemple, lorsque vous ajoutez un fichier XML avec des lettres majuscules dans le nom comme myCoolLayout.xml, ce qui n'est pas autorisé. Ou lorsque vous avez des références qui ne pointent pas vers des fichiers existants, etc.
la source
Si, pour une raison quelconque, cela ne fonctionne pas: assurez- vous que vos fichiers layout.xml ne contiennent pas d'erreurs. Eclipse semble être un peu bogué ici: parfois, il ne marque pas les erreurs dans le XML ni dans l'explorateur de packages. Dans un tel cas: jetez un œil à la vue "console" ou "problèmes" après avoir utilisé "nettoyer". Toutes les erreurs doivent y être affichées. Réparez-les et refaites un nettoyage.
REMARQUE: il n'est PAS nécessaire de corriger les erreurs que vous obtenez en raison d'un fichier R manquant! Corrigez simplement les fichiers XML et autres erreurs de projet et utilisez clean!
la source
Solution rapide:
Le nom du package dans le manifeste doit être le même que celui du
/src
dossier, le/gen
package du dossier sera automatiquement reproduit.Observation détaillée:
Observez le nom du package dans le
/gen
dossier. Dans mon cas, c'était différent de celui du/src
dossier.Le package référencé dans le manifeste était celui du
/gen
dossier.J'ai essayé d'ajouter un package avec le nom du
/src
dossier au dossier pour/gen
voir ce qui se serait passé, mais cela n'a pas résolu le problème. J'ai ensuite procédé à la suppression du nom du package qui n'était pas le même que le nom du package du/src
dossier. Ce package avec le nom qui ne correspondait pas au/src
dossier a été recréé dès que je l'ai supprimé.Étant donné que la référence de package dans le manifeste correspond à celle qui était insensément recréée et qui ne correspondait pas avec le package dans le
/src
dossier, cela a incité à renommerpackage = "oldPackage"
avec lepackage = "srcFolderPackage"
.la source
J'ai eu le même problème, et j'ai finalement trouvé le problème: dans le strings.xml, je n'ai pas conservé la ligne
<string name="app_name">program-name</string>
qui est présente par défaut lors de la création d'un nouveau projet Android. Je pensais qu'il n'était utilisé que pour le programme HelloWord, qui est le programme d'origine.Cependant, AndroidManifest.xml fait référence à cette valeur, d'où:
=> Une erreur de compilation;
=> le R.java n'est pas mis à jour;
=> Les identifiants ne sont pas reconnus ...
la source
Android a ajouté l'outil de construction SDK ADT 22 pour le mécanisme de construction. Il vous suffit de suivre les étapes suivantes.
Cela résoudra le problème.
la source
Si votre R.java n'est pas généré, l'une des solutions est de supprimer le fichier de mise en page nommé "blabla.out.xml".
Après avoir supprimé ce fichier, essayez de nettoyer le projet dans le menu Projet -> Nettoyer .
la source
Comme généralisation de la réponse de Glaux, si vous avez des erreurs dans le
res
répertoire, R.java peut ne pas générer - même si vous nettoyez et reconstruisez. Résolvez d'abord ces erreurs.Par exemple: lorsque vous ajoutez un fichier image de disons, "myimage-2.jpg", le système considérera cela comme une erreur, car les noms de fichiers sont limités aux valeurs alphanumériques. Faites un rafraîchissement sur votre répertoire «res» après avoir ajouté des fichiers et regardez la sortie dans la fenêtre de votre console pour tout avertissement de nom de fichier.
la source
Si votre système d'exploitation est Ubuntu, je peux fournir quelques suggestions:
Installez ou mettez à niveau ia32-lib:
Vérifiez si vous avez la bonne autorisation sur le dossier aapt:
Démarrez Eclipse:
Exécuter le projet -> Nettoyer dans Eclipse
la source
Vous avez 100% une erreur dans un fichier XML , mais la vérification XML ne vous montre pas l'erreur. C'est la raison pour laquelle vous devez d'abord vérifier vos fichiers XML!
la source
Il est TOUJOURS utile de jeter un œil à l' onglet Problèmes dans Eclipse. Dans mon cas, j'obtenais un message d'erreur " Android incapable de résoudre la cible 'android-8' " qui empêchait la génération de R.java. J'ai donc corrigé la cible importée à celle que j'utilisais dans le fichier default.properties , puis j'ai effectué un nettoyage via Projets-> Nettoyer et le tour est joué! R.java est généré automatiquement! J'espère que ça aide!
la source
Nettoyer le projet, fermer Eclipse, le rouvrir et lancer mon projet a finalement fait réapparaître mon R.java ... J'espère que ça aide
la source
Assurez-vous que vous n'importez pas
android.R;
la source
R.java ne sera jamais généré s'il y a des erreurs dans le
res
dossier. Par exemple, dans le sous-dossier drawable, il y a deux fichiers qui portent le même nom, l'un est icon.png et l'autre est icon.html.Vous pouvez voir une erreur dans la fenêtre de journal de la console Eclipse qui dit "L'icône d'entrée de ressource est déjà définie.". Après avoir supprimé icon.html, vous pouvez nettoyer ou simplement supprimer le
gen
dossier. Vous constaterez que R.java est créé.la source
J'ai constaté que tout fichier contenant des majuscules dans le
res
dossier créera cette erreur. Cela m'est arrivé avec un fichier PNG que j'ai ajouté et oublié.la source
Après avoir lu de nombreux articles et vidéos YouTube, j'ai constaté que chacun de nous
R.java
manquait pour différentes raisons.Voici comment j'ai corrigé cela dans Eclipse:
gen
dossier manuellement et enregistrez.Le message suivant s'affiche et votre fichier est automatiquement réécrit:
la source
Pour moi, j'avais lié v7 appcompat deux fois. Quoi qu'il en soit, dans Eclipse, cliquez avec le bouton droit sur le nom du projet dans l'Explorateur de packages ou le Navigateur, accédez à Propriétés, Android et décochez les doublons dans la section Bibliothèque. Vous devrez peut-être compiler -> nettoyer ensuite.
la source
Il n'y a évidemment pas de réponse définitive à cela, mais en voici une autre que je ne vois pas déjà:
J'ai
R.java
disparu après (avoir tenté) une synchronisation d'équipe et il y avait des fichiers de résolution de conflits dans le projet (c.-àthingy.xml.mine
-dthingy.xml.r35
.,, Etc.). Les supprimer / résoudre les conflits régénérésR
.la source
J'ai eu ce problème. J'ai accidentellement supprimé ceci
qui a commencé à provoquer des erreurs de construction partout dans le projet dans mes fichiers XML ainsi que mes fichiers Java. Dès que j'ai retapé ce que j'ai supprimé, cela a fonctionné à nouveau :)
la source
OK, il est donc clair qu'il peut y avoir beaucoup de causes à ce problème. Si vous êtes sur une machine Linux 64 bits et que vous venez de configurer l'ADT pour la première fois, vous pouvez rencontrer ce problème où R ne se génère pas automatiquement. Vérifiez l'onglet de la console et vous pouvez voir une erreur similaire à:
Si c'est le cas, vous devez installer ia32-libs, en utilisant quelque chose comme:
Voir ici pour plus de détails: adb Android introuvable
la source
J'ai rencontré ce problème plusieurs fois. J'ai constaté que si je n'avais pas importé le package R via le nom de mon application, par exemple, si mon application avait le nom de package example.test, j'ai constaté que je devais importer example.test.R pour accéder à l'un des Ressources.
Si cela n'a pas été importé, les ressources qui ont été renvoyées étaient les ressources par défaut, aucune des miennes n'étant incluse.
Cela dit, si vous constatez que vous obtenez uniquement une liste de ressources par défaut, vérifiez simplement que vous importez application_package_name.R et non android.R.
la source
Mon problème était qu'il
appcompat
n'était pas dans le même répertoire que mon projet.J'ai découvert cela lors de la compilation de mon application avec Ant .
la source
Assurez-vous également que vous disposez de la dernière version du plug-in ADT et ouvrez le gestionnaire du SDK Android pour mettre à jour tous les outils du SDK vers la dernière version. Recherchez également les mises à jour dans Eclipse. Les versions non correspondantes m'ont causé le problème.
la source
Mon problème était dans un fichier de menu. Le compilateur ne semble pas vous avertir si des chaînes qui n'existent pas à l'intérieur
strings.xml
sont référencées dans les fichiers de menu. Vérifiez si vositem
fichiers XML dans votre menu font référence à des chaînes qui n'existent pas dans votre fichierstrings.xml
. Habituellementandroid:title
.la source
Pour moi, cette erreur a été provoquée lorsque j'ai essayé de dupliquer un existant
res/menu
au lieu d'en créer un avec lewizard
.la source
Toutes ces réponses ne pourraient pas fonctionner si vous utilisez Maven. La solution pour moi était d'ajouter
à la section de configuration du plugin android-maven.
la source
J'ai trouvé une solution pour laquelle R.class n'est pas fabriqué par Eclipse après l'avoir fait à nouveau - 2 nettoyer, construire, etc.
Le problème est ici dans strings.xml:
Ceux-ci sont créés par défaut par Eclipse lorsque vous créez des projets.
Certainement, vous modifiez le fichier strings.xml pour vos propres besoins. Parfois, vous effacez les deux lignes string.xml de votre code:
Cela pose un problème dans le fichier AndroidManifest.xml:
Il ne peut donc pas communiquer avec strings.xml.
la source
J'ai changé le nom de mon fichier XML de mise en page et j'ai découvert plus tard que le fichier XML (fournisseur de widgets dans ce cas) fait toujours référence à l'ancien XML de mise en page qui n'existe pas, et qui empêchait la génération / correction automatique de la classe R.
la source