8
votes

R ne peut pas être résolu - Android, pas d'importation Android.R; déclaration

OK, Je travaille sur une nouvelle application et tout a fonctionné bien tant que j'ai utilisé une vue relative. Cependant, je veux une mise en page à onglets, alors j'ai changé ce que j'avais (peu loin depuis que je viens de le faire lire à partir d'un DB et de paramètres de travail) à une vue à onglets. Depuis ce temps, toute classe qui a une déclaration R. dans elle a une erreur "R ne peut pas être résolue". Je suis le tutoriel du tutoriel Android "Hello Vues", donc je suppose que ce n'est pas la question (mais cela pourrait toujours être).


0 commentaires

10 Réponses :


11
votes

J'ai quelques suggestions:

  1. Assurez-vous de ne pas avoir d'autres erreurs autres que les erreurs liées à R. Cliquez avec le bouton droit sur votre dossier de projet dans Eclipse, Android Tools -> Correction des propriétés du projet.

  2. Vérifiez que vous avez le correct importé. Parfois, l'Android.R par défaut peut être importé.

  3. Vérifiez les erreurs dans vos fichiers XML de mise en page.


2 commentaires

Découvert que j'avais un personnage manquant dans mon fichier Res / mise en page / Main.xml.


+1 pour éliminer d'abord les erreurs non liées à R. Je ne l'ai toujours pas tout à fait compris, mais j'avais des erreurs non liées à la R dans un projet différent et je ne comprends pas comment ils ont interagi - mais éliminant ces erreurs d'abord rendu les erreurs r disparaissent. Allez comprendre.



2
votes

Si vous utilisez Eclipse, essayez de lui donner un coup de pied en faisant un projet / propre et réédité votre projet. Il a parfois des problèmes aléatoires avec la classe de classe sur des projets Android.


0 commentaires

-2
votes

Vous devez vous assurer d'importer R. Si votre colis principal est com.example, essayez d'importer «com.example.r» en haut de vos fichiers. Pour une raison quelconque, Eclipse ne le fait pas pour vous.


2 commentaires

Vous n'avez pas besoin de "importer r", et vous ne devriez pas faire cela. Le problème est que R n'est pas compilé à cause d'une erreur (ou simplement des éléments randomisés pouvant être fixés par le nettoyage).


Lorsque j'ai une activité dans un emballage séparé que mon activité de lancement, j'ai besoin de "importer R", sinon mon projet me donne une erreur. J'ai essayé de nettoyer et de reconstruire.



8
votes
  1. Vous pouvez essayer de "nettoyer" votre projet.
  2. La solution technologique par défaut aide parfois: redémarrer Eclipse (sérieusement)
  3. Si vous avez une erreur (quelque chose dans votre XML peut-être, ou quelque chose d'autre), r ne peut pas être compilé. Si tel est le cas, essayez de trouver la première erreur notée. Si vous résolvez cela, r sera compilé et trouvé. Si Necesairy, utilisez le point 1. et 2. Après avoir fixé des trucs.
  4. Supprimez toutes les choses "Importer R" dans les sections d'importation. Vous ne voulez pas ça.

7 commentaires

Vous ne voulez pas importer Android.R mais vous souhaitez importer le R qui fait partie de votre projet.


Non, vous ne voulez pas importer de r comme indiqué plus poussé, parfois Eclipse apparaît avec la mauvaise classe de classe, et il provoquera de dériver de l'android.r au lieu de votre mode de nettoyage. Nettoyage et redémarrage (et en utilisant occasionnellement Autocomplète pour vous assurer qu'il utilise votre voyageur.r au lieu d'Android.R) sont les solutions. Encore une fois, R est (devrait être) construit dans le cadre de votre projet et ne doit pas être importé.


Quand je n'importe pas R à partir de com.mypackage.r, j'ai une erreur. Est-ce parce que mon activité de lancement est dans un paquet séparé?


Je ne sais pas. Si le redémarrage et le nettoyage et la correction du projet, etc. ne fonctionnent probablement pas une erreur. Il n'a rien à voir avec R Any: Vous trouverez une erreur dans votre code utilisé pour générer R, et il n'est donc pas généré. Et s'il n'est pas généré, il n'est pas trouvé. Rechercher des problèmes non "r".


Mon projet ne fonctionne pas si je n'importe pas R pour rien en dehors du paquet avec mon activité de lancement.


@zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz Si vous avez divisé votre application en paquets de sorte que l'activité / tout ce qui est dans un emballage différent de votre « dossier de demande », vous devez importer R. de votre projet S'il est dans le même paquet, vous ne devriez pas importer ce.


@Dan voulait dire vous taguer dans le commentaire précédent, mais n'autorise donc qu'un à la fois



0
votes

Si quelque chose dans votre répertoire "res" est nommé à l'aide de caractères illégaux, cela peut arriver.

Notez que Android permet uniquement aux lettres minuscules (pas de capitales !!!), chiffres et le soulignement. C'est tout!

Presque tous les systèmes d'exploitation permettent à d'autres caractères, de déplacer un fichier dans votre répertoire "res" peut facilement créer ce problème.

correction? Renommer le fichier. Ceci est fait en cliquant avec le bouton droit de la souris sur le fichier dans votre package ou votre explorateur de projet et en sélectionnant Refactor-> Renommer. Vous devrez peut-être nettoyer votre projet après, mais méfiez-vous de «Importation Android.R» redoutée qui peut se glisser.

bonne chance! -Scott


0 commentaires

1
votes

Avec les grandes suggestions dans les réponses précédentes, assurez-vous que votre objectif Android est défini:

  1. Cliquez avec le bouton droit de la souris sur votre projet
  2. Choisissez Propriétés
  3. Choisissez Android dans le menu de gauche
  4. Cochez une case à côté de la cible de construction de projet appropriée.
  5. Cliquez sur Appliquer et ok

    Edit: Un an plus tard, j'ai trouvé une autre cause. J'ai eu une image .jpg dans mon dossier dessinable avec le même nom que l'image .png. Référencement de cette image dans mon code doit avoir confondu le programme et il a donné l'erreur "R ne peut pas être résolue".


0 commentaires

0
votes

J'ai aussi eu le problème d'échantillon et cela a fonctionné pour moi.

1.) Vérifiez les erreurs de votre présentation XML. Surtout quand il s'agit de texte et de titres

vous devez utiliser xxx

au lieu de xxx

.2) Nettoyer votre projet

.3) Redémarrez Eclipse


0 commentaires

0
votes

Vérifiez que toutes les chaînes que vous pensez que vous utilisez (E.G. "@ String / Hello_World" existe réellement dans votre fichier Strings.xml. J'ai eu l'erreur de l'OP après avoir déclaré un élément de menu à l'aide de Android: Titre = "@ String / Navigation" , mais je n'avais pas ajouté Navigation à strings.xml


0 commentaires

0
votes

Vous devez importer vos propres projets R de classe R plutôt que d'Androids par défaut de classe R, c'est-à-dire.

votre.app.package.r

Cela rendra les valeurs définies dans le dossier RES de votre classe. Après cela actualisant puis nettoyez votre projet.


0 commentaires

0
votes

Dans mon cas, il a été causé depuis que j'ai refactore mon projet et déplacé des classes dans une structure de dossier. Ces classes ne pouvaient pas trouver le r comme d'habitude, car il repose sur le dossier de la source racine.


0 commentaires