web-dev-qa-db-fra.com

Android Studio ne peut pas résoudre R dans un projet importé?

J'essaie le nouveau Android Studio. J'ai exporté un projet depuis Eclipse à l'aide de l'option de génération de dégradé. Je l'ai ensuite importé dans Android Studio. Le fichier R.Java sous gen est placé dans un petit cercle rouge et dans mes fichiers sources, j’obtiens "ne peut pas résoudre le symbole R" lorsque j’ai une référence à une ressource, par exemple "R.layout.account_list". etc.

Je n'ai jamais utilisé Intellij auparavant. J'apprécierais toute aide car il n'y a évidemment pas beaucoup de réponses à propos de Android Studio. Merci!

47
joe_deniable
  1. Appuyez sur F4 dans Structure du projet, cochez SDK à gauche
  2. Cliquez Modules ---> Source Onglet, cochez gen et src en tant que sources

PS: La réponse depuis plus d’un an et les menus ont changé.

34
Crossle Song

Fichier -> invalider les caches

puis

Redémarrer l'application

28
Mehmet Ali SAVAŞ

Aucune des réponses sur le Web à ce jour n'a aidé. Build> Make Project n'a pas fonctionné pour moi. Pour moi, c'était aussi simple que de choisir cette autre option (sur Android Studio 1.3.1):

Build> Make Module 'nom du module'

13
Kevin Cooper

Dans mon cas, j'avais un fichier d'activité importé d'Eclipse contenant la ligne:

import Android.R;

Ainsi, toutes mes classes R étaient résolues dans le SDK, dès que j'ai commenté cette ligne, tout était compilé correctement dans mon paquet. J'ai seulement remarqué le problème lorsque je déplaçais le projet de mon Mac vers ma machine Windows.

7
hoss

Ce problème a commencé à se produire lorsque j'ai commencé à travailler avec build.gradle pour incorporer les données nécessaires (signatureConfigs) afin de générer un fichier .apk signé. Après ce qui semblait être une construction réussie à partir de la ligne de commande, j'ai découvert que, dans toute classe utilisant R. *, toutes les références à R. * n'étaient pas résolues.

Les réponses ici ne m'ont pas aidé. J'ai décidé de réimporter le projet et le problème a été résolu comme par magie. Fichier/Importer un projet ... et sélectionnez le fichier build.gradle dans le dossier racine de mes applications. J'aimerais savoir pourquoi la réimportation a résolu ce problème :)

4
GaryAmundson

Ceci est probablement dû à une génération de ressource ayant échoué

Une fois le problème résolu, un simple Build > Rebuild Project fera l'affaire

3
MonoThreaded

Aller à Fichier -> Paramètres -> Compilateur maintenant vérifier tiliser une construction externe

puis reconstruire le projet

2
Kuluval

Ce problème m'a souvent frustré, notamment lors de l'intégration d'une bibliothèque de projet dans le cadre d'un autre projet. Dans la plus récente occurrence de ce problème miné, mon projet Android lib utilisait WebView. Il s'avère que Gradle crée le fichier R.class dans un sous-répertoire appelé "web" dont le chemin n’ayant rien à voir avec mon chemin de code source. Lorsque j’ai importé cela, mon problème avait disparu. Qu'ai-je appris? Dans le futur, il suffit de faire une recherche de fichier pour R.class et de noter le chemin où il se trouve. le paquet dans votre code en utilisant ce chemin. C'est vraiment nul que vous deviez le faire manuellement. Gradle devrait importer automatiquement les paquets qu'il génère.

2
AndroidDev

La solution consiste à ouvrir la fenêtre de structure de projet. [par ordre de presse +; sur les mac ox s. Je ne sais pas quel est le raccourci clé pour les autres plates-formes. vous devriez pouvoir le trouver dans le menu "Fichier".] et cliquez sur "Modules" dans la section "Paramètres du projet", votre projet sera alors révélé, puis marquez le R.Java généré comme source.

J'utilise Intellij idea 14.0 CE. Le fichier R.Java généré est situé dans le répertoire construction/généré/source/r/debug/com/exemple/xxx

Vraiment pas facile à trouver pour la première fois.

1
Songlin

Vous devriez vérifier tous vos fichiers s'il n'y a pas d'erreurs et reconstruire à nouveau votre projet en:

  • Construire> Reconstruire le projet.

Ou dans:

  • Fichier> Paramètres> Construire, Exécution, Déploiement> Compilateur

Vérifier use external build et après avoir reconstruit le projet.

1
Gladys Sanchez

Voici ce qui a fonctionné pour moi dans IntelliJ (Not Studio), en plus des réponses présentées ci-dessus:

Vous devez associer une facette Android à un module existant Android. Pour ce faire, sélectionnez le module dans la liste des modules dans "Paramètres du module", puis appuyez sur la touche Cliquez sur le bouton "+" en haut de l'écran et sélectionnez "Android". Voir https://www.jetbrains.com/idea/webhelp/enabling-Android-support.html .

1
crazy horse

Suivez les cinq étapes ci-dessous:

  1. Étape 1 ===> Supprimez (CTRL X) la ou les balises supplémentaires dans le fichier manifeste XML.
  2. Étape 2 ===> Ouvrir la construction -> Nettoyer le projet.
  3. Étape 3 ===> Ouvrez le fichier manifeste XML et passez la dernière balise supplémentaire, telle que: Exemple de fichier de balise: (<uses-permission Android:name="Android.permission.VIBRATE"></uses-permission>)
  4. Étape 4 ===> Étape 2 à nouveau.
  5. Étape 5 ===> Ouvrir l'outil -> Android -> Synchroniser le projet avec 'Gradle'.

J'ai eu le même problème mais après toutes les étapes c'est un travail pour moi.

1
Zrelli Majdi

Vérifiez d'abord s'il y a import Android.R; en haut de votre classe, cela se produit lorsque l’importation automatique dans enable dans Android studio.

après ce commentaire, toutes les lignes de votre code utilisant la variable R (vous pouvez commenter toute la classe ou ...), puis exécutez l'application qui régénère la variable R et vous pouvez supprimer le commentaire de votre code.

1
sadegh saati

Mon problème était que j'avais le fichier 'default.jpg' dans un dossier pouvant être dessiné et que, pour une raison quelconque, chaque ressource n'était pas résolue. Correction après la suppression de ce fichier!

1
Ingo Kodba

Je faisais également face au même problème et j'ai énormément de réponses à propos du stackoverflow. Ensuite, j'ai trouvé une solution qui m'aide à résoudre ce problème.

Vérifiez le nom du package dans le fichier AndroidManifest.xml. J'ai oublié de le changer en copiant un autre projet dans un nouveau projet.

1
Vinit Thaker

Sur IntelliJ 14

Vérifiez si les sources générées sont exclues. Généralement dans la structure du projet -> [module] -> Chemins -> Sortie du compilateur: "Hériter du chemin de sortie de la compilation"

1
Fabio Bonfante

Concernant ce qui suit, de réponse de Crossle Song

  1. Presse F4 dans la structure du projet, vérifiez les SDK à gauche
  2. Cliquez sur Modules ---> onglet Source, vérifiez gen et src en tant que sources

Malgré le message "Nous fournirons une interface utilisateur pour configurer les paramètres du projet plus tard, etc.", cela a fonctionné pour moi.

1
Tim Medhurst

Je résous ce problème en mettant Java_HOME, CLASSPATH.

Les utilisateurs ignorent parfois Java_HOME et CLASSPATH lors de la définition de Java_path.

Donc, essayez de vérifier la variable d'environnement.

CLASSPATH ->.;

Java_HOME -> C:\Program Files\Java\jdk (version) ou où Java installé

puis vérifiez le fichier XML qui peut avoir une erreur (ne nommez pas des choses bien connues telles que bouton, texte, etc.)

0
Fukkong

Dans mon cas (Linux, Android Studio 0.8.6) les aides suivantes:

Fichier> Structure du projet> Modules> sélectionnez le module principal> sélectionnez sa facette> Sources générées.

change la valeur de "Répertoire pour les fichiers générés:"

de

MY_PATH/.idea/gen

à

MY_PATH/gen

Sans que ce code soit compilé, apk est construit et exécuté avec succès

mais Android L'éditeur Studio met en évidence mypackage.R. tout ce qui est "impossible à résoudre" dans toutes les classes de sous-packages

0
nxdrvr

Dans mon cas:

Je devais Copier Référence le fichier R; c'est-à-dire un clic droit sur gen/<package>/R et Copier la référence. Puis collez-le sur le R dans votre code là où il ne parvient pas à résoudre.

Cela a résolu le problème pour moi (après avoir essayé tout le reste ici). Je ne sais toujours pas pourquoi cela a fonctionné pour être honnête.

0
manyways

J'ai eu le même problème et je l'ai fait réparer en supprimant une bibliothèque supplémentaire.

Pour faire, essayez cette solution dans Fichier> Structure du projet (sur un Mac, vous pouvez utiliser la commande "Apple;")

Ensuite, sélectionnez l'application sur l'onglet de gauche. Accédez à l'onglet Dépendances et supprimez la bibliothèque supplémentaire.

0
German

Aucune de ces réponses ne m'a aidé!

Mon problème n'était pas un problème! Le programme peut compiler complètement et s’exécuter sur le périphérique, mais le IDE) m’a donné une erreur de syntaxe gênante. Il a souligné les lignes de codes contenant "R.".

La façon dont j'ai pu résoudre ce problème:

Je viens d'ajouter ces trois classes dans le dossier "myapp/gen/com.example.app/":

BuildConfig

package com.example.app;
public final class BuildConfig {
    public final static boolean DEBUG = true;
}

manifeste

package com.example.app;
public final class Manifest {
}

R

package com.example.app;
public final class R {
}
0
Behzad

vérifiez la version des outils de construction dans build.gradle (pour l'application du module). Ensuite, allez sur Android sdk manager pour voir si la version est installée sinon installez-la ou changez la version des outils de génération pour la remplacer par celle installée ci-dessous.

    Android {
          buildToolsVersion "22.0.1"
          ..
          ..
          ..
     }
0
user3013823

Avait cette erreur lors de l'importation du projet à partir d'Eclipse. La raison était que certains fichiers XML contenaient des erreurs. Vérifiez TOUS vos fichiers XML pour les erreurs. Y compris androidmanifest.xml et les valeurs, thèmes, styles, dossiers de mise en page, etc. Les avertissements au format xml sont acceptables, mais les erreurs génèrent cette erreur.

Ensuite, faites un projet propre et reconstruisez.

0
live-love

il suffit de nettoyer le projet, puis de synchroniser votre projet avec le fichier Gradle.

0
Fakher

J'ai résolu ce problème avec intellij 2016.1 parce que j'avais configuré les sources générées pour aller dans un répertoire qui n'était pas dans le répertoire du projet de base.

Par exemple, dans la facette Android, sous "Sources générées", j'avais:

Directory for generated files: <project dir>/target/intellij-gen

Quand j'ai changé ceci en <project dir>/gen le problème est parti.

De même quand je l'ai ensuite changé en <project dir>/gen2 le problème a également disparu - mais je devais effectuer un nettoyage en profondeur pour le faire compiler à nouveau en effectuant:

rm -rf ~/.IdeaIC2016.1/system/compile-server/<project>_<hash>

et en supprimant tous les répertoires générés et target dir.

0
rmin

Pour moi, avec Android Studio 1.5.1, la solution consistait à recréer l’ensemble du projet sous un nom légèrement différent.

Je pense que cela ne traitait pas le nom de l'application "Kommentator_AS", car plusieurs emplacements du paquet s'appelaient à la place "Kommentator".

0
Berit Larsen

J'ai eu le même problème. Le nom du package était incorrect dans deux des trois fichiers suivants. J'ai mis à jour manuellement le nom du paquet et tout a recommencé à fonctionner.

gen/com/example/app/BuildConfig.Java

gen/com/example/app/Manifest.Java

gen/com/example/app/R.Java

Je ne suis pas sûr de ce qui les a fait changer car je n'ai jamais modifié ces fichiers auparavant.

0
Randall Sutton

Dans mon cas, j'ai constaté que "Android.R.layout.account_list" était référencé à la place de "R.layout.account_list". Supprimez simplement "Android". peut résoudre le problème. J'espère que cela vous aidera, car vous risquez parfois d'ignorer lorsque vous vous concentrez trop.

0
David C.

La solution publiée par https://stackoverflow.com/users/1373278/hoss ci-dessus a fonctionné pour moi. Je le reproduis ici car je ne peux pas encore commenter le post de hoss:

Supprimez import Android.R; De votre fichier d'activité en question.

Ma configuration:

Android Studio 1.2.2

Projet exporté d'un Mac vers Git (tout fonctionnait bien). J'ai ensuite importé le projet sur un autre Mac à partir de Git. C'est quand il a cessé de résoudre les fichiers de ressources.

J'ai tout essayé sur ce fil:

  1. invalidation du cache et redémarrage
  2. Supprimer les fichiers .iml et le dossier .idea et réimporter le projet
  3. Nettoyer et reconstruire le projet

Rien n’a fonctionné, sauf la suppression de import Android.R; De mon activité Java.

Pour éviter ce problème à l'avenir, ajoutez le dossier .idea À votre fichier .gitignore. Il y a un joli plugin de git pour gitignore dans Android Studio. Installez ce plugin et faites un clic droit dans .idea > Add to .gitignore

0
dessertcook

Après avoir essayé de nettoyer et de reconstruire sans succès, vérifiez que votre dossier res ne contient pas de fichiers corrompus.

Dans mon cas, un fichier corrompu .png A causé tous les problèmes.

0
Thorian