1130 votes

R ne peut être résolu - erreur Android

Je viens de télécharger et d'installer le nouveau SDK Android. Je voulais créer une application simple pour le tester.

L'assistant a créé ce code :

package eu.mauriziopz.gps;

import android.app.Activity;
import android.os.Bundle;

public class ggps extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

mais Eclipse me donne l'erreur

R ne peut être résolu

en ligne

setContentView(R.layout.main);

Pourquoi ?

PS : J'ai bien un fichier XML nommé main.xml sous res/layout/ .

0 votes

Pour ceux qui rencontrent encore des problèmes avec eclipse qui ne peut pas mettre à jour/générer R.java. Une solution possible est de créer un xml factice et de supprimer ce xml. Dans mon cas, voici la solution

0 votes

Honnêtement, cela semble tellement stupide (et ça l'est), mais modifier le fichier AndroidManifest.xml, puis annuler cette modification, puis enregistrer le fichier a fonctionné pour moi. Si je nettoyais le projet après ça, ça cassait à nouveau. Et pendant tout ce temps, je pensais que Xcode était le seul IDE qui avait ce genre d'erreurs mystérieuses.

3 votes

Avez-vous essayé de faire un clic droit sur le projet -> Android Tools -> Fix Project Settings ?

852voto

Michael Levy Points 7236

Après avoir recherché ce problème également, j'ai trouvé cette note dans la documentation Android :

http://source.Android.com/source/using-eclipse.html

*Remarque : Eclipse aime parfois ajouter une déclaration "import Android.R" en haut de vos fichiers qui utilisent des ressources. en haut de vos fichiers qui utilisent des ressources, surtout lorsque vous demandez à Eclipse de de trier ou de gérer autrement les importations. Ce entraînera votre faire de se briser. Regardez à ces déclarations d'importation erronées et supprimez-les.

En parcourant les exemples de tutoriels Android, j'utilisais souvent la fonction Ctrl + Shift + O pour "Organiser les importations" et générer toutes les déclarations d'importation manquantes. Parfois, cela générait une déclaration d'importation incorrecte qui masquait l'erreur d'importation. R.java qui est automatiquement générée lors de la construction.

0 votes

En effet, c'est ennuyeux et c'est la bonne réponse. Si vous rencontrez ce problème avec un projet de bibliothèque, vous pouvez découvrir ce qui se passe si le projet de bibliothèque compile lorsque vous utilisez l'espace de nom complet de la référence R au projet de bibliothèque.

0 votes

Pour ce que ça vaut, la page référencée semble avoir été mise à jour. La référence originale peut toujours être trouvée dans le cache de Google - webcache.googleusercontent.com/

0 votes

Si cela ne fonctionne toujours pas pour vous, essayez d'importer R directement par import [PROJECT_NAME].R ;

398voto

Luc Points 4194

Chaque fois que j'ai eu un problème avec R non généré, ou même disparu, cela était dû à un problème dans le fichier de mise en page XML qui empêchait la construction de l'application.

21 votes

+1 pour cela. J'avais un ancien fichier styles.xml avec parent="Android:WindowTitleBackground" et cela cassait ma construction et empêchait tout ce qui était généré de "gen". L'erreur n'a pas été signalée, sauf dans la fenêtre Console lorsque j'ai ouvert le projet pour la première fois.

12 votes

Exactement, si vous avez copié des mises en page d'un autre projet et que vous obtenez ce résultat, vérifiez s'il manque des éléments dessinés - cela résoudra le problème instantanément !

0 votes

Je l'ai eu quand j'ai cliqué sur "Run" avec le fichier de mise en page (activity_main.xml) ouvert, et il a généré le vide activity_main.out.xml et j'ai ensuite trouvé une erreur. J'ai dû supprimer le ...out.xml et cliquez sur Run sur le projet. Tout est réglé ! Voir stackoverflow.com/questions/11254618/

205voto

Kailash Points 2170

Chaque fois que vous obtenez

R ne peut être résolu

puis vérifiez l'existence du /res et il doit y avoir un fichier qui contient une erreur et qui empêche la construction de l'application. Par exemple, il peut s'agir d'un fichier de mise en page ou d'une ressource manquante, mais vous l'avez déjà définie dans le fichier XML.

Si vous avez des images supplémentaires, même inutilisées ( !) ou non référencées ( !) dans un dossier comme res/drawables-mdpi qui ne respecte pas les conventions de dénomination des fichiers (peut contenir seulement [a-z0-9_.]), la classe R.java peut ne pas être générée, ce qui provoque la chaîne d'événements à laquelle tous les autres messages font référence. J'espère que cela vous aidera !

0 votes

J'ai eu ce problème avec les exemples d'ApiDemos. Il manque une ressource dans le fichier strings.xml. Les erreurs XML sont listées dans la console d'Eclipse.

0 votes

Merci ! c'était mon problème, j'avais une mise en page qui se trompait mais il n'y avait aucun message à ce sujet.

29 votes

Comment pouvez-vous vérifier les erreurs ? Je n'obtiens rien dans ma console lors de la construction et de l'exécution.

138voto

Dimitar Dimitrov Points 6587

mon projet a inclus un r.java.au début ,R.layout.main fonctionne bien.mais,après avoir ajouté du code il ne fonctionne pas,et l'erreur est R.layout.main can't resolved.quel est le problème ?

Regardez vos importations. Il y a de fortes chances que la ligne :

import android.R;

sera présent. Si c'est le cas, supprimez-le, afin que votre projet résolve R non pas avec la classe Android Resources par défaut, mais avec celle générée automatiquement à partir de votre dossier /res/.

5 votes

Merci @Dimitar, cela a réglé mon problème ! Eclipse et la fonction d'auto-importation semblent m'avoir compris en ajoutant cette ligne d'importation automatiquement.

7 votes

J'ai également eu des problèmes similaires lorsque j'ai nommé une disposition en utilisant des lettres majuscules.

0 votes

C'est l'une des cinq principales raisons pour lesquelles les gens obtiennent "R not found". J'ai compilé une page de problèmes/solutions avec des images qui montrent les 5 principales au lien ci-dessous. J'espère vraiment que cette liste aidera les gens car c'est un problème courant. spragucm.wordpress.com/2014/05/13/

97voto

Michał K Points 3304

Et une autre chose qui peut causer ce problème :

J'ai installé le nouvel ADT (v. 22). Il a cessé de créer gen qui comprend R.java . La solution consistait à installer également les nouveaux outils de construction Android SDK à partir du gestionnaire Android SDK.

Solution trouvée ici

0 votes

Moi aussi. Et quand j'ai sélectionné le gestionnaire de SDK, voilà que les outils de construction sont automatiquement vérifiés pour l'installation, avec une note indiquant qu'il s'agit de n'était pas installé ! Que se passe-t-il ?

0 votes

J'avais le même problème. Je suis si heureux que vous ayez partagé cela. J'ai regardé l'erreur de mon propre code deux jours. Je suis très déçu par Google, car ce message d'erreur a été très difficile à résoudre, mais il a été causé par ma propre erreur, bien que les outils ne signalent pas correctement ce qui le cause. J'ai fait des changements dans mon projet en même temps, donc je pense que c'est encore ma faute.

5 votes

Ça a marché pour moi, merci ! Cela ne fait que renforcer mon mantra : "ne jamais rien mettre à jour pendant le développement".

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