web-dev-qa-db-fra.com

Le studio Android n'arrive plus à résoudre le symbole R

J'avais un projet ouvert dans le studio Android. Il a été généré par le magicien et fonctionne bien.

J'ai apporté quelques modifications mineures à activity_main.xml et, lorsque je suis revenu à MainActivity.Java, j'ai l'erreur à plusieurs endroits de ne pas pouvoir résoudre R. J'ai peut-être fait quelque chose pour y remédier. Mais je ne sais pas trop ce qui s’est passé depuis que j’ai édité le XML.

Est-ce que quelqu'un sait quelle pourrait être la solution à cela? Je peux trouver le R.Java dans r/release/packege/com/et tout va bien.

10
Einar Sundgren

La plupart du temps, cela est dû à un fichier XML incorrect. Les fichiers XML peuvent être des fichiers de présentation, des fichiers de valeur ou le fichier Manifest. Veuillez vérifier vos fichiers XML et essayer de reconstruire le projet. Parfois, nettoyer et reconstruire le projet fonctionne aussi. 

33
Shaleen

De plus, assurez-vous que vous ne pouvez pas dessiner avec un nom invalide. J'ai eu un dessin avec un nom de fichier numérique et qui ne fonctionnait pas bien avec Android, donc il n'a pas été possible de compiler R.Java.

4
Tash Pemhiwa

Déclassement de la version de votre plugin Gradle

Aucune quantité de nettoyage, de reconstruction et de redémarrage ne ferait l'affaire pour moi. 

Le seulement chose qui a fait le truc était de déclasser notre version de Gradle de 3.4.0-alpha02 à 3.2.1.

Donc, au lieu de:

dependencies {
    classpath 'com.Android.tools.build:gradle:3.4.0-alpha02'
}

Nous avons utilisé:

dependencies {
    classpath 'com.Android.tools.build:gradle:3.2.1'
}

Après avoir effectué ce changement, puis effectué une synchronisation Gradle, tout a fonctionné. 

Vous ne savez pas si cela est lié à la version alpha ou à cette version ou si vous modifiez votre version de Gradle du tout force simplement une actualisation qui ne peut pas être effectuée avec les autres commandes, mais voilà.

4
Joshua Pinter

Assurez-vous que dans votre AndroidManifest.xml le nom du paquet est correct. Cela a résolu le problème lorsque mon R.whatever était marqué en rouge!

3
craned

J'ai eu le même problème parce que dans strings.xml, j'ai oublié d'échapper à une apostrophe. Utilisez "\ '" jamais "'" dans le fichier xml!

1
Jeremie

Je reçois parfois cela après la mise à jour d'Android Studio. Pas toujours tout de suite mais après un certain temps (peut-être après un redémarrage du programme). 

Voici ce qui a fonctionné pour moi: Outils - Android - Projet de synchronisation avec les fichiers Gradle. 

Pour une raison quelconque, le fait de cliquer sur le lien "Synchroniser maintenant" qui apparaît après la modification du fichier build.gradle ne m'a pas changé. Même si les messages disent à peu près la même chose. 

1
Christina

Essayez de nettoyer le projet en procédant comme suit:

Si vous utilisez Windows, ouvrez CMD, cd dans le répertoire de votre projet et exécutez gradlew clean.

1
Chandra Kurniawan

J'ai eu ce même problème surgir aussi (plus récemment, alors que j'étais au déjeuner - est revenu et WTF?). Et comme il s’agissait d’un simple programme Hello, World, il n’y avait pas beaucoup d’endroits où ces erreurs pouvaient se cacher. Les fichiers XML avaient l'air d'aller bien - je n'avais même pas touché le manifeste. Un nettoyage n'a rien fait.

J'ai donc commenté une section de mon layout.xml pour tenter de cerner le problème. Effectivement, les erreurs ont disparu.

Et puis j'ai simplement dégagé le contenu de ce que j'avais commenté ... et tout était génial. Étrange! Il restait peut-être quelques problèmes à résoudre afin de reconstruire le fichier de mise en page. Vous penseriez que des choses de base comme celle-là ne se produiraient pas de nos jours, mais c'est le cas.

Encore une chose! Il est possible que quelque chose arrive aussi à Java. Il est très difficile de connaître l'état de l'environnement d'exécution Java. juste plus facile de recommencer. Alors, voici une dernière chose à essayer: redémarrez votre ordinateur, redémarrez Android Studio, ET ALORS Invalidate Caches and Restart. Oui, le porc entier.

1
Scott Biggs

Dans mon cas, je venais d’ajouter de nouveaux fichiers image au dossier extractible et d’y insérer accidentellement un fichier GIF avec mes fichiers PNG. Je ne les avais pas encore incorporés au projet. J'ai enlevé le GIF et ensuite fait un nettoyage et une reconstruction. Cela a réglé le problème pour moi.

0
Clif

Ce problème se produit lorsque vous renommez le nom du package . Après avoir renommé le nom du package, vous devez modifier le nom du package old En newer one . moi, il a résolu le problème une fois que j'ai changé cela . Après cela, vous pourriez avoir des erreurs dans les fichiers XML, que vous devez changer le nom du paquet là aussi . Voilà.

0
Acupolco

Lorsque tout échoue, redémarrer Android aide parfois. Au démarrage, les fichiers sont chargés à nouveau, ce qui permet la détection du R

0
HagTheDon

Je viens d'avoir ce problème et la raison était qu'après le montage de la mise en page, Android studio a automatiquement ajouté une importation aux fichiers source:

import Android.R

Bien sûr, la classe principale R n'a pas tous les symboles dans vos mises en page, ce qui a tout gâché en rouge… .. Supprimer cette ligne a été résolu pour moi.

EDIT: On dirait que Eclipse a eu le même problème au début.

0
Roberto Piva

J'ai eu ce problème exact lors de l'importation d'un exemple de programme Udacity. Le volet de messages d'Android Studio indiquait que l'erreur ne parvenait pas à charger un fichier .PNG dans un sous-répertoire situé au cœur des fichiers du projet. 

Le fichier PNG avec tous les noms de chemin de sous-répertoire était supérieur à la limite de longueur de nom définie par Windows 7 (260 caractères). J'ai donné au projet un nom plus court - pour libérer de l'espace - puis Android Studio a été compilé avec joie.

0
Mark Mosher

Je viens d'avoir le problème R et après quelques heures, le problème était dû à l'orthographe régionale utilisée dans l'un de mes fichiers xml. Le problème de Word était le comportement, qui est orthographié par les Américains. Je suis Australien et on nous a appris à vous, à l’anglais, à épeler certains mots et j’ai donc regardé au-delà de cette phrase à plusieurs reprises avant que le centime ne tombe. C'est une petite chose, mais il peut facilement se faufiler et vous mordre dans les régions les plus basses, il est difficile à repérer et peut vous faire perdre beaucoup de temps.

0
Rowie