Android Studio marque R en rouge avec le message d'erreur "cannot resolve symbol R&quot ;, mais la construction réussit

Dans chaque projet que j'ai essayé de créer dans Android Studio, toutes les utilisations de R sont marquées en rouge avec le message d'erreur "cannot resolve symbol R&quot ;, mais la compilation réussit et l'application fonctionne. C'est vraiment ennuyeux, car cela bloque l'autocomplétion et fait apparaître d'énormes lignes rouges ondulées partout dans mon code.

J&#8217exécute Android Studio 1.7.0 et je crée le projet avec les paramètres par défaut. Une capture d'écran est jointe :

!Capture d'écran Android Studio][1]

Voici mon build.gradle :

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.4'
    }
}
apply plugin: 'android'

dependencies {
    compile files('libs/android-support-v4.jar')
}

android {
    compileSdkVersion 17
    buildToolsVersion "17.0.0"

    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 16
    }
}

Voici à quoi ressemble la structure du projet :

![entrez la description de l'image ici][2]

Une idée pour réparer cela ?

[1] : http://i.stack.imgur.com/YfaJB.png [2] : http://i.stack.imgur.com/p7Wg3.png

Pour certaines raisons, Android Studio utilise des configurations différentes pour l'éditeur et pour le compilateur. Si ça marche pour le compilateur alors c&#8217est bon. Si ça ne fonctionne pas pour l'éditeur. (il voit des fichiers non résolus).

Vous devez ajouter certains répertoires à la source de votre projet. Par exemple, toutes les ressources doivent être marquées comme "source".

Fichier->Structure du projet

Sélectionnez "Modules&quot ;, puis votre projet. Et sélectionnez l'onglet sources. Sur la droite trouvez votre répertoire de ressources et cliquez sur le bouton bleu "source&quot ;. Fermez tout et cela devrait fonctionner.

Aussi, vous devrez vous assurer que

build/source/r/debug est aussi une source. Dans mon cas, tous mes build/source/*/debug sont marqués comme source.

main module .iml

<?xml version="1.0" encoding="UTF-8"?>






































































projet iml

<?xml version="1.0" encoding="UTF-8"?>

















Magie noire

Je ne suis pas sûr de celle-ci, mais j'ai entendu dire qu'elle fonctionnait alors que je suis presque sûr qu'elle ne devrait rien changer. Essayez de compiler et d'enregistrer le projet après avoir commenté toutes les lignes qui nécessitent R. Puis quand tout n'est pas rouge. Essayez de les rajouter. Ce qui est étrange, c'est que votre build/source n'est pas généré.

Cette question suggère également de cocher la case "compilateur utilisant une construction externe" ;

https://stackoverflow.com/questions/16622515/android-studio-dont-generate-r-java-for-my-import-project

Note complémentaire

Assurez-vous également que dans votre code java il n'y a pas de . import android.r; d'après ce que vous avez montré, tout semble correct. Il est juste étrange que le build/source ne soit pas créé. Par exemple, je n'ai pas de build/apk. Il se peut que vous soyez en mode release et que ces répertoires ne soient pas créés.

Commentaires (5)
Solution

Voici ma solution temporaire jusqu'à ce que je trouve une meilleure solution :

  1. En utilisant Everything, trouvez où R.java est créé. Dans mon cas, c'était C:\Program Files (x86)\Android\android-studio\system\compiler\.cb969c52\.generated\aapt\.6badd9a4\production\com\\

  2. Dans la vue Projet, cliquez sur le module et appuyez sur F4. Ignorez l'avertissement.

  3. Cliquez sur "+ Add Content Root&quot ; et sélectionnez le dossier susmentionné. Assurez-vous qu'il est marqué en bleu (comme source).

Après avoir fait cela, tous les avertissements ont soudainement disparu. Le problème est que si vous collaborez avec d'autres personnes, le nom du dossier est différent sur chaque machine, il faut donc faire attention lors de la synchronisation.

Commentaires (3)

J'ai eu ce bug il y a quelques jours, j'ai essayé de chercher partout jusqu'à ce que je décide de réinstaller Android Studio. Cela a fonctionné pour moi.

Commentaires (2)