web-dev-qa-db-fra.com

Développement pour Android dans Eclipse: R.Java ne régénère pas

J'ai découvert que mon R.Java n'était jamais mis à jour et qu'il ne contenait donc aucune information sur mes nouvelles ressources. J'ai donc décidé de le supprimer et j'ai pensé qu'Eclipse en générerait un nouveau. Mais cela n'est pas arrivé et je n'ai pas R.Java pour le moment. Comment puis-je en régénérer un?

J'utilise Windows 7.

De l'un des commentaires: "Faire Projet -> Nettoyer est ce qui a causé le problème pour moi. Le nettoyage supprime R.Java ... et pour une raison quelconque, le plugin n'est pas régénérer le fichier. "

307
Aleksejs Popovs

Ce site suggère:

si vous exécutez un nettoyage sur le projet, il doit régénérer tous les fichiers Java générés, à savoir R.

...et...

Dans Eclipse, dans le menu Projet, une option est créée automatiquement. Cela vous aiderait à créer le fichier R.Java chaque fois que des modifications sont apportées. L'option Nettoyer ... est également présente sous Projet.

Ce site suggère une autre solution.

176
aioobe

J'ai constaté que cela m'arrivait avec une mise en page brisée et que tout explose. Détendez-vous, c'est comme cette vieille erreur quand vous avez appris à programmer en C, où vous oubliez un point-virgule et qui génère cent erreurs. Beaucoup de panique, appuyez sur tous les boutons, et aggrave les choses.

Solution

  • Assurez-vous que tout ce vers quoi le lien R. n'est pas endommagé. Corrige toutes les erreurs dans tes fichiers XML. Si quelque chose dans les ADK est cassé, R ne se régénérera pas.
  • Si vous touchez quelque chose et créez import Android.R dans votre activité, supprimez-le.
  • Exécuter Projet -> Nettoyer. Cela supprimera et régénérera R et BuildConfig.
  • Assurez-vous que Projet -> Construire automatiquement est coché. Sinon, construisez-le manuellement via Menu -> Project -> Build Project.
  • 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 -> Android Outils -> Réparer les propriétés du projet.
  • Vérifiez vos fichiers *. Properties (situés dans le dossier racine de votre dossier d'application) et assurez-vous que les liens qu'il contient ne sont pas rompus.
  • Cliquez avec le bouton droit de la souris sur votre projet> propriétés> Android. Examinez les sections Project Build Target et Library du côté droit de la page. Votre cible de construction doit correspondre à la cible dans votre fichier AndroidManifest.xml. Par conséquent, s'il est défini sur la cible 17 dans AndroidManifest, assurez-vous que le nom de la cible est Android 4.2. Si votre bibliothèque a un X sous la référence, supprimez-la et ajoutez-la de nouveau jusqu'à ce que la coche verte apparaisse. Cela peut arriver si vous avez déplacé quelques fichiers et dossiers.

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 lieux communs sont /layout/ et /values/, en particulier si vous en avez modifié l'un récemment.
  • Vérifiez AndroidManifest.xml. Je trouve que souvent je change une chaîne et j'oublie de changer le nom de chaîne de AndroidManifest.xml.
  • Vérifiez que Android SDK Build-tools est installé. Fenêtre -> Android Gestionnaire de SDK -> Outils -> Android Outils de génération de SDK
  • Assurez-vous que lorsque vous mettez à jour le Android SDK Tools, vous mettez également à jour le Android SDK Platform-tools et Android ADK Build-tools. La construction échoue silencieusement si elles ne correspondent pas.
  • Si vous ne trouvez pas le problème, clic droit/gen/-> Restaurer à partir de l'historique local ... -> cochez R.Java -> cliquez sur Restaurer. Même si cela ne résout pas le problème, les erreurs supplémentaires seront effacées pour faciliter la détection du problème.
302
Muz

J'ai eu le même problème. Lorsque j’ai vérifié, j’ai constaté que le nom de la ressource XML sous layout n’avait pas la convention de dénomination correcte. Il y avait des lettres majuscules. Alors je l'ai renommé pour que toutes les lettres soient en minuscules et que la magie fonctionne.

40
Amit Kumar

L'une des raisons pour lesquelles R.class peut disparaître soudainement est due à des erreurs dans vos fichiers XML. Par exemple, lorsque vous ajoutez un fichier XML avec des lettres majuscules dans le nom, tel que 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.

28
Pawel

Dans Eclipse, utilisez simplement Project -> clean pour nettoyer le projet. Le R.Java va être automatiquement (re) créé.

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 le paquet Explorer. Dans un tel cas: jetez un coup d'œil à la vue "console" ou "problèmes" après l'utilisation de "nettoyer". Toutes les erreurs devraient y être affichées. Corrige-les et refais un nettoyage.

NOTE: Il n'est PAS nécessaire de réparer les erreurs que vous obtenez à cause d'un fichier R manquant! Corrigez les fichiers XML et les autres erreurs de projet et utilisez le nettoyage!

17
masi

Solution rapide:

Le nom du paquet dans le manifeste doit être identique à celui du dossier /src, le paquet du dossier /gen sera automatiquement reproduit.

Observation détaillée:

Observez le nom du paquet dans le dossier /gen. Dans mon cas, il était différent de celui du dossier /src.

Le paquet référencé dans le manifeste était celui du dossier /gen.

J'ai essayé d'ajouter un paquet portant le nom du dossier /src au dossier /gen pour voir ce qui serait arrivé, 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 celui du dossier /src. Ce paquet dont le nom ne correspond pas au dossier /src a été recréé dès que je l'ai supprimé.

Comme la référence du paquet dans le manifeste correspond à celle qui était recréée de façon insensée et qui ne correspondait pas au paquet dans le dossier /src, il a été invité à renommer package = "oldPackage" avec le package = "srcFolderPackage".

10

J'ai eu le même problème et j'ai finalement trouvé le problème: Dans le fichier 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 était uniquement utilisé pour le programme HelloWord, qui est le programme d'origine.

Cependant, le fichier AndroidManifest.xml fait référence à cette valeur, par conséquent:

=> Une erreur de compilation;
=> le R.Java n'est pas mis à jour;
=> ID ne sont pas reconnus ...

9
Glaux

Android a ajouté l'outil de création de SDK ADT 22 pour le mécanisme de création. Vous devez juste suivre les étapes suivantes.

  1. Mettre à jour Android SDK Tool
  2. Mettre à jour Android SDK Platform Tool
  3. Mettre à jour Android SDK Build Tool
  4. Ajoutez le chemin de votre outil de construction à la variable de chemin. (chemin jusqu'à ---- VOTRE REPERTOIRE-PATH\Android-sdk\build-tools)

Cela résoudra le problème.

9
Mr.India

Si votre R.Java n'est pas généré, une des solutions consiste à supprimer le fichier de mise en page nommé "blabla.out.xml".

Après avoir supprimé ce fichier, essayez de nettoyer le projet à partir du menu Projet -> Nettoyer.

8
Shashank

Comme généralisation de la réponse de Glaux, si vous avez any erreurs dans le répertoire res, alors R.Java risque de ne pas être généré, même si vous nettoyez et reconstruisez. Résolvez ces erreurs en premier.

Par exemple: lorsque vous ajoutez un fichier image de type "myimage-2.jpg", le système considérera cela comme une erreur, car les noms de fichier sont limités à des valeurs alphanumériques. Réactualisez votre répertoire 'res' après avoir ajouté des fichiers et observez le résultat affiché dans la fenêtre de la console pour tout avertissement concernant le nom de fichier.

7
JnBrymn

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!

6
Erdinc Ay

Si votre système d'exploitation est Ubuntu, je peux vous donner quelques suggestions:

  1. Installez ou mettez à niveau ia32-lib:

    Sudo apt-get upgrade ia32-libs
    
  2. Vérifiez si vous avez la bonne permission sur le dossier aapt:

    cd Android/adt-bundle-linux-x86_64-20130522/sdk/build-tools/Android-4.2.2
    chmod 777 aapt
    
  3. Démarrer Eclipse:

    Sudo Eclipse
    
  4. Exécuter le projet -> Nettoyer dans Eclipse

6
Nevin Chen

Il est TOUJOURS utile de jeter un coup d'œil à l'onglet Problèmes dans Eclipse. Dans mon cas, le message d'erreur "Android incapable de résoudre la cible" Android-8 "" empêchait la génération de R.Java. Donc, j'ai corrigé le cible importé à celui 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!

5
goseib

Assurez-vous de ne pas importer

Android.R;

4
Zain Ali

J'ai trouvé que un fichier quelconque comportant des lettres majuscules dans le res Le dossier créera cette erreur. Cela m'est arrivé avec un fichier PNG que j'ai ajouté et oublié.

4
user1889890

Projet de nettoyage, fermeture d'Eclipse, réouverture et lancement de mon projet ont finalement fait réapparaître ma R.Java ... J'espère que cela aidera

4
Filippo Mazza

R.Java ne sera jamais généré s'il y a des erreurs dans le dossier res. Par exemple, dans le sous-dossier pouvant être dessiné, il y a deux fichiers qui portent le même nom, l'un est icon.png et l'autre, icon.html.

Vous pouvez voir une erreur dans la fenêtre du journal de la console Eclipse qui indique "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 dossier gen. Vous constaterez que R.Java est créé.

4
yuxiaomin

Pour moi, j'avais lié v7 appcompat deux fois. Quoi qu’il en soit, dans Eclipse, cliquez avec le bouton droit de la souris sur le nom du projet dans l’Explorateur de packages ou le navigateur, accédez à Propriétés, Android, puis décochez les doublons dans la section Bibliothèque. Vous devrez peut-être construire -> Nettoyer après.

3
Shanker Kaura

Après avoir lu de nombreux articles et vidéos YouTube, j’ai constaté que chacun d’entre nous manquait de R.Java pour différentes raisons.

Voici comment j'ai corrigé cela dans Eclipse:

  • Créez R.Java dans le dossier genmanuellement et enregistrez.
  • Après cela, allez dans Projet et cliquez sur "Nettoyer"

Le message suivant s’affiche et votre fichier est automatiquement réécrit:

R.Java a été modifié manuellement! Revenir à la version générée!

3
Anup Singh

J'ai eu ce problème. J'ai accidentellement supprimé cette

xmlns:tools="http://schemas.Android.com/tools"

qui a commencé à causer des erreurs de construction tout au long du projet dans mes fichiers XML ainsi que dans mes fichiers Java. Dès que j'ai retapé ce que j'ai supprimé, cela a fonctionné à nouveau :)

2
Mohamed El-Saka

OK, il est donc clair que ce problème peut avoir de nombreuses causes. Si vous êtes sur une machine Linux 64 bits et que vous configurez l'ADT pour la première fois, vous pouvez rencontrer ce problème où R ne génère pas automatiquement. Vérifiez l'onglet de la console et vous verrez peut-être une erreur semblable à:

 'No such file or directory' while attempting to get adb version from '/home/patrick/code/Android-sdks/platform-tools/adb'

Si c'est le cas, vous devez installer ia32-libs, en utilisant quelque chose comme:

 Sudo apt-get install ia32-libs

Voir ici pour plus de détails: adb Android introuvable

2
Patrick

Il n'y a évidemment pas de réponse finale à cette question, mais en voici une autre que je ne vois pas encore ici:

R.Java a disparu après la (tentative) de synchronisation d'une équipe et le projet contenait des fichiers de résolution de conflit (c'est-à-dire thingy.xml.mine, thingy.xml.r35, etc.). Les supprimer/résoudre les conflits régénérés R.

2
Ben Mosher

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 portait le nom de package exemple.test, j'ai alors constaté que je devais importer exemple.test.R pour pouvoir accéder à l'un des fichiers. Ressources.

Si cela n'a pas été importé, les ressources renvoyées sont les ressources par défaut, sans les miennes.

Cela dit, si vous constatez que vous n'obtenez qu'une liste des ressources par défaut, assurez-vous simplement que vous importez le nom_package_application.R et non Android.R.

2
Spider

Mon problème était que appcompat n'était pas dans le même répertoire que mon projet.

Je l'ai découvert lors de la compilation de mon application avec Ant .

2
Martin Ždila

Lorsque rien ne semble fonctionner correctement même si vous pensez que tout va bien, vérifiez vos fichiers XML un par un. L'erreur est là à 100%.

Si vous travaillez avec l'interface graphique des fichiers XML, tout semble aller pour le mieux, mais lorsque vous entrez des fichiers XML textuels, vous voyez le désordre qui s'y cache. Eclipse est un peu buggé pour ce genre de choses.

Définissez BuildAutomatically également, donc après avoir corrigé vos erreurs, vous aurez votre fichier R.Java dans les fichiers générés .... BONNE CHANCE !!!

1
Dragan

Dans mon cas, les fichiers R n'étaient pas générés, car mon dossier res/ portait des fichiers XML portant le même nom (par exemple, res/layout/filename.xml et res/values/filename.xml).

Après avoir changé l’un des noms de fichiers, mes fichiers R ont été générés à nouveau par l’option Construire automatiquement.

1
Kevin Lawrence

J'ai changé le nom de mon fichier XML de présentation et découvert plus tard que celui du fichier XML (fournisseur de widgets dans ce cas) fait toujours référence à l'ancien XML de présentation qui n'existe pas et qui empêchait la génération/correction automatique de la classe R.

1
Howard

Toutes ces réponses ne pourraient pas fonctionner si vous utilisiez Maven. La solution pour moi était d'ajouter

<genDirectory>${project.basedir}/gen</genDirectory>

à la section de configuration de Android-maven-plugin.

1
Bevor

Pour moi, cette erreur a été provoquée lorsque j'ai essayé de dupliquer un res/menu existant au lieu d'en créer un avec le wizard.

1
Hakim

Je veux souligner la réponse de _.

J'avais renommé une couleur de "listcolor" en "color_list", mais je n'ai pas compris que l'une des autres dispositions le référençait. Donc (tout à coup) tous mes R.string.X et R.layout.X ont échoué sur le "R".

Finalement, j'ai regardé dans la fenêtre de la console et regardé les erreurs. Je pensais qu'ils faisaient tous référence à l'absence de recherche de R, mais en réalité, l'un d'entre eux était "listcolor" non trouvé. Dès que j'ai résolu ce problème, les autres erreurs ont toutes disparu.

Peut-être qu'une future version du plugin pour Eclipse vous permettra de renommer les ressources de ces fichiers XML et de les propager à toutes les références.

1
Jon

Pour moi, le problème était que j'avais dans mon dossier res une image avec une lettre majuscule, c'est-à-dire, Image.png. Il suffit de mettre image.png.

Tout à lowerCase et c'est tout!

1
PartiuGames

J'ai eu le même problème. Il s'est avéré que j'avais une référence circulaire; J'ai changé un nom de chaîne référencé dans ma mise en page.

J'ai fait un nettoyage et une reconstruction et le fichier R.Java n'a pas été recréé. J'ai perdu deux heures à essayer de comprendre ce qui n'allait pas. J'ai finalement changé l'élément de mise en page en un texte temporaire, fait un projet propre et le fichier R.Java a été créé.

1
Chris

Vérifiez également que vous disposez de la dernière version du plug-in ADT et ouvrez le gestionnaire de SDK Android pour mettre à jour tous les outils SDK vers la dernière version. Recherchez également les mises à jour dans Eclipse. Les versions non correspondantes ont causé le problème pour moi.

1
caw

Ce problème est juste venu avec moi aussi et malheureusement aucune des suggestions ici ne m'a aidé. Après avoir essayé beaucoup de choses, j'ai finalement découvert ce qui s'était passé et j'espère que cela pourra aider les autres.

Hier, j'ai téléchargé de nombreuses nouveautés à l'aide du Android SDK Manager. Après cela, j'ai mis à jour le plug-in Android Eclipse. Aujourd'hui, après un "nettoyage" Eclipse, le fichier R a disparu et n'a plus été généré.

La raison en était que, d’une manière ou d’une autre, la liste des SDK disponibles (sous Préférences-> Android) était vide. Après l'avoir à nouveau dirigé vers le bon répertoire, il rechargea et montra les SDK disponibles. Lorsque j'ai fermé les préférences et essayé une autre version, tout est revenu à la normale.

Dans l'image jointe, vous pouvez voir la liste des kits de développement déjà remplis. Pendant que le problème se produisait, il était vide.

J'espère que cela peut aider les autres!

Screen with SDKs correctly showing

1
ederribeiro

Mon problème était à l'intérieur d'un fichier de menu. Le compilateur ne semble pas vous avertir si des chaînes qui n'existent pas dans strings.xml sont référencées dans des fichiers de menu. Vérifiez si votre items dans vos fichiers XML de menu fait référence à des chaînes qui n'existent pas dans votre strings.xml. Habituellement dans Android:title.

1
Stefan Anca

J'ai trouvé une solution pour laquelle R.class n'est pas fabriqué par Eclipse après l'avoir recollée - 2 clean, build, etc.

Le problème est ici dans strings.xml:

<string name="hello">Hello World, HelloAutoComplete!</string>

<string name="app_name">HelloAutoComplete</string>

Celles-ci sont créées par défaut par Eclipse lors de la création de projets.

Vous modifiez certainement le fichier strings.xml pour vos propres besoins. Parfois, vous supprimez le string.xml de ces deux lignes de votre code:

Cela pose un problème dans le fichier AndroidManifest.xml:

<application Android:icon="@drawable/icon"  Android:label="@string/app_name">
<activity Android:name=".HelloAutoComplete" Android:label="@string/app_name">

Donc, il ne peut pas communiquer avec strings.xml.

1
aarifmkhan

Ce problème m'est également arrivé lorsque j'essayais de générer Support4Demos à partir du code source du SDK.

Après avoir résolu certains problèmes dans les fichiers de ressources (par exemple, "fill_parent" renommé "match_parent"), j'ai découvert que le problème se trouvait dans le fichier manifeste: j'ai désactivé la balise "Définir une <application> dans le fichier AndroidManifest.xml ", enregistrez les modifications et R.Java réapparaît comme par magie. Ensuite, j'ai revérifié la case, sauvegardé le fichier et le fichier R.Java a été régénéré.

Je suppose que je suis tombé sur une lacune Eclipse.

0
PJ_Finnegan

J'ai oublié de définir un attribut name sur une balise declare-styleable

<declare-styleable>
        <attr name="myView" format="reference"></attr>
</declare-styleable>

Je l'ai réparé avec

<declare-styleable name="Theme">
        <attr name="myView" format="reference"></attr>
</declare-styleable>

Je n'ai eu aucune erreur

0
passsy

Ne supprimez pas ces deux lignes de strings.xml:

Android:icon="@drawable/icon" Android:label="@string/app_name"

Android:name=".HelloAutoComplete"

Android:label="@string/app_name"
0
aarifmkhan

Résolvez le problème en modifiant le fichier project.properties: j'ajoute une cible d'Android-17.

0
Yingpei Zeng

Il y a aussi une autre situation qui m'est arrivée. C'était quand j'ai ajouté une chaîne avec un apostrophe dans mon fichier de ressources strings.xml, comme

<string name="Today">Returns Today’s date</string>

Il a été corrigé en modifiant l'apostrophe pour un autre type d'apostrophe, tel que ´.

0
pvalle

Tout d’abord, vérifiez la sortie de la console.
Ensuite, vérifiez si vos noms de fichiers de présentation XML sont en minuscule uniquement.
Corrigez les erreurs XML.
Recherchez dans les propriétés du projet -> Android

0
Jakub Miřejovský

Il est presque certain que quelque chose ne va pas dans le contenu qui serait inséré dans le fichier genfile. Eclipse n'est pas assez intelligent pour montrer quels sont les problèmes ou même pour indiquer qu'il y a des problèmes!

Pensez à la dernière modification apportée au contenu XML ou image - et essayez d’annuler vos modifications manuellement si nécessaire.

Je trouve que parfois Eclipse n'aime pas mes noms de fichiers pour une raison quelconque, et je dois les changer.

Ajoutez donc les ressources une par une en vous assurant que tout fonctionne. Lorsque quelque chose se brise, essayez de le modifier un peu jusqu'à ce qu'Eclipse l'accepte.

Vous savez que cela fonctionne lorsque le fichier genfile apparaît - il le fera automatiquement s'il n'y a pas de problèmes.

0
jomamaxx

Il n'y avait aucune erreur mais trois avertissements où j'avais utilisé du texte codé en dur pour button attributs de texte dans mon main.xml. Quelque chose comme ça:

<Button
    Android:id="@+id/scan"
    .....
    Android:text="Scan" />

Après avoir changé l'attribut text en Android:text="@string/scan_device", le R.Java a été immédiatement généré.

Donc, cela se produit toujours sur ma machine/Eclipse chaque fois qu’il ya une erreur/un avertissement dans l’un des fichiers XML.

IntelliJ IDEA n'a pas ce problème pour avertissements bien que.

0
amar

Voici une autre réponse que j'ai trouvée, après qu'aucune des 30 réponses précédentes ne m'aide.

J'ai trouvé mon problème dans le fichier strings.xml, bien qu'il soit très étrange. J'ai dépouillé mon application au strict minimum et c'est la seule chose qui est apparue. Je peux même le reproduire sur une nouvelle application vide.

Dans le fichier strings.xml, cela compile (et génère le fichier R.Java):

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Test_My_App</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
</resources>

Cependant, ce n'est pas:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world</string>
<string name="app_name">My_App</string>
<string name="action_refresh">Refresh</string>
</resources>

Le "drôle" est que j'ai retiré l'action_settings il y a plusieurs jours. J'ai nettoyé mon code depuis lors et je n'ai jamais eu de problèmes. J'ai ajouté des chaînes supplémentaires au fichier strings.xml aujourd'hui et, après le nettoyage du code, les roues se sont décollées. De plus, si je réorganise l'ordre des 3 mêmes lignes et que je nettoie mon code, le fichier R.Java n'est pas régénéré.

Il y a ma solution à mon problème particulier.

J'espère que ça aide quelqu'un ...

0
TooManyEduardos

Le fichier R.Java concerne principalement le fichier .xml et le fichier Java. Nous connaissons les balises XML, mais qu’en est-il de Java, nous avons donc besoin d’un identifiant unique pour l’identifier.

Ici, le fichier R.Java est principalement lié au fichier XML avec Java pour obtenir les valeurs.

0
manu

Dans mon cas, j’ai vérifié toutes les solutions précédentes mais n’ai pas généré R. Je viens de retirer mon fichier main.xml du dossier de menu et de le régénérer. Je ne sais pas pourquoi, mais ça marche pour moi maintenant ...

0
Shylendra Madda

J'ai eu un problème avec mon fichier AndroidManifest.xml et le fichier R.Java n'a pas été généré.

Je pense que la solution consiste à vérifier TOUS vos fichiers XML, partout!

0
Florin Vistig
  1. Assurez-vous que vos fichiers XML vont bien sans problèmes
  2. Assurez-vous que votre manifeste ne contient pas d'erreur
  3. Assurez-vous que vos cordes n'ont pas de problème en eux

Si l'un d'entre eux a des problèmes, Eclipse pourrait ne pas réussir à construire la classe R ... Corrigez les problèmes, nettoyez et reconstruisez ..

0
Li3ro

Essayez de vérifier le fichier project.properties. Il se peut que votre fichier JAR Android dans le chemin de la construction ne corresponde pas à la version mentionnée plus haut.

Cela a résolu mon problème car j'avais changé de cible.

0
Adithya

J'ai eu le même problème.

Après avoir vérifié Avertissements de peluches, j'ai vu l'avertissement The resource R.string.app_name appears to be unused..., j'ai donc supprimé R.string.app_name.

Cette ressource est requise dans AndroidManifest.xml bien que Lint me prévienne d'une ressource non utilisée. J'ai ajouté "ressource inutilisée" au manifeste et tout est rentré dans l'ordre.

J'espère que cela aide quelqu'un.

0
cutoff

J'ai eu une erreur dans le fichier AndroidManifest.xml, donc après avoir corrigé cette erreur et frappé

Run-> clean

ça me produit R.Java

0
user1324491

Vous pouvez essayer encore une chose.

Allez à C:\Program Files (x86)\Android\android-sdk\tools>, exécutez adb kill-server puis adb start-server. Cela a fonctionné pour moi, et je ne connais pas la raison :-).

0
Varun

J'ai eu le même problème. Il s'avère que la raison était que certaines de mes ressources avaient des lettres majuscules dans leurs noms de fichiers. Je sais que cela semble anodin mais il suffit de les changer en petites lettres pour les corriger et récupérer mon fichier R.Java à nouveau.

J'espère que ça t'as aidé.

0
xemacobra

Cela est également dû au fait que vous avez une balance9 dessinable avec le même nom qu'un autre fichier:

  • img_file.9.png
  • img_file.png

Le simple fait de supprimer l'un des fichiers le corrige.

0
basvk

Il semble que toutes les réponses ici répètent sans cesse pour vérifier les erreurs dans le XML et nettoyer votre projet. Fais le! Mais si ça ne marche pas? Voici ce qui a fonctionné pour moi:

Si vous construisez un projet qui génère un faux R et que vous le supprimez, il ne se régénérera pas. Supprimez ce projet et créez-en un nouveau. Assurez-vous de NE PAS cocher "Générer automatiquement", vous pourrez alors copier vos dossiers dans l'espace de travail, puis ALORS. vous nettoyez le projet ou cochez "Construire automatiquement" pour qu'il génère correctement votre R.

0
Thiago

Si vous utilisez le vérificateur d'erreurs Lint, il identifiera une importation parasite de "R". Une fois que le système XML a trouvé le mauvais bout du bâton, tout est perdu !!!

0
user462990

Dans mon cas, après avoir arrêté sans fin l'IDE, nettoyé, essayé de construire, etc., le problème était un "dossier sans titre" dans mon dossier "res" que j'avais probablement ajouté par erreur.

Je souhaite que ce type d'erreur soit produit par Eclipse, comme le script Ant :

[null] invalid resource directory name: /Users/gubatron/workspace.Android/my-project/res/untitled folder
0
Gubatron

Voici ce qui a fonctionné pour moi, mais pas les autres réponses:

  1. Créer nouvea Android Projet d'application,
  2. Copier tout fichiers et dossiers de l'ancien répertoire (sauf/gen) et remplacer!
  3. Actualiser racine du projet dans l'Explorateur de packages.
  4. Si toujours là, Clean encore!

    Terminé. J'espère que cela t'aides.

0
DarkReaper

Voir l'article de blog Conseil du développeur Android: Régénérer R.Java.

Plutôt que de poursuivre la découverte de toutes les souches imaginables du problème trouvé dans la nature, j'ai décidé de tirer parti de l'approche éprouvée consistant à observer le code. Après l'avoir fait pendant un moment, j'ai repéré quelques types rouges sous le dossier res. C’était un reliquat de mon travail de refonte actuel que j’étais sur le point de supprimer avant que les choses ne se passent mal. Effectivement, dès que je frappe Del sur eux la chose maudite R réapparut automatiquement.

En single phrase: Supprimez tous les fichiers indésirables du projet et le code indésirable du fichier manifeste.

0
AKA

J'ai rencontré ce problème pour la première fois cet après-midi. Même lorsque je crée un nouveau projet, R.Java n'est pas généré. J'ai changé de lieu de travail et tout fonctionne à nouveau.

0
ljz51

Si votre fichier AndroidManifest.xml fait référence à des constantes de chaîne que vous avez stockées dans strings.xml et que vous renommez ces chaînes en strings.xml, vous devrez les modifier dans le manifeste pour que tout soit caché. une construction.

Il en irait de même pour tous les fichiers .xml de mise en page référençant les constantes que vous avez modifiées. Malheureusement, ni la vue Markers ni la vue Problèmes dans Eclipse ne vous diront où vous devez vous rendre pour résoudre les problèmes, mais simplement qu'ils ne peuvent pas trouver R.Java. Comme indiqué dans d'autres réponses, examinez la console pour voir où vous devez corriger vos références constantes, puis nettoyez à nouveau votre projet.

0
hotshot309

Si toutes les réponses échouent, vous pouvez exécuter la génération de ressources à partir de la ligne de commande: Accédez au répertoire de votre projet Eclipse. Puis courir

aapt.exe package -f -v -m -S res -J src -M AndroidManifest.xml -I Android_HOME/platforms/Android-XXX/Android.jar

Il suffit de changer ANDROIRD_HOME et XXX avec les valeurs appropriées. Vous devriez obtenir des informations à l'écran où l'erreur est.

0
eldy

Je ne peux pas le voir énuméré ici, mais j'ai rencontré le problème de mon R.Java être supprimé et non reconstruit automatiquement.

Cela m'est arrivé lorsque je m'occupais de déclarations et de chaînes de commutateurs. Eclipse m'a suggéré de modifier la conformité de mes projets en 1.7, ce qui a immédiatement divisé le projet (R.Java) en tant que Android impossible d'utiliser cette conformité .

Console:

[2013-03-12 17:26:33 - CrimeAtlas] Android requires compiler compliance level 5.0 or 6.0. Found '1.7' instead. Please use Android Tools > Fix Project Properties.

J'ai corrigé l'erreur en utilisant "Corriger les propriétés du projet" puis en parcourant le journal comme suggéré. J'ai commenté le XML dans les fichiers mentionnés en les remplaçant temporairement par un LinearLayout. Quand c'est corrigé, bam, il réapparaît (si "Build Automaticly" est activé). Je peux alors modifier les fichiers XML si rien ne se passe.

0
Jethro