web-dev-qa-db-fra.com

Android Le compilateur inline de Studio affiche des erreurs rouges, mais la compilation avec gradle fonctionne correctement

J'ai configuré mon projet dans Android Studio pour utiliser la bibliothèque Square Wire , conformément à cette question .

Build -> Compile Project fonctionne bien.

2:03:10 PM Compilation completed successfully in 31 sec

Cependant, si j'ouvre l'un de mes fichiers de tampon de protocole générés, le paquet Square n'est pas reconnu.

Android Studio inline compile errors

Un autre symptôme est que les méthodes héritées de la classe Square Message s'affichent avec les erreurs de compilation "Impossible de résoudre la méthode" dans l'éditeur, même si leur construction et leur exécution sont correctes.

Android Studio single line compile error

Dois-je faire quelque chose de plus que simplement ajouter la dépendance dans build.gradle pour mon module dans mon projet?

123
Dan J

Merci à free3dom de m'avoir mis sur la bonne voie ici.

Diagnostic

L'option Sync Project with Gradle Files Dans Android Studio semble maintenir les bibliothèques Project Structure À jour.

gradle sync

Cependant, dans mon cas, il y avait des erreurs:

errors found

L'élargissement du lien (pas très évident) a montré le détail. Ma bibliothèque filaire était affichée à un emplacement incorrect:

libraries

Cela semblait être une gueule de bois de ma configuration d'origine où j'avais importé le fichier JAR dans un dossier libs.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

Je l'ai par la suite changé pour qu'il soit importé directement de Maven Central ( comme ici ), et il semble que l'ancien paramètre n'ait jamais été remplacé par le nouveau.

Le correctif

Le correctif consiste à supprimer la dépendance de la bibliothèque de l'écran Project Structure, Puis à nouveau Sync Project with Gradle Files.

Plus de détails

Vous pouvez également voir quel chemin est utilisé pour la ressource en ouvrant directement le .idea/libraries/wire_runtime_1_2_0.xml.

Mon cassé était:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES />

Après avoir supprimé et ré-ajouté la bibliothèque, le root url A été remplacé par:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />

Mettre à jour

Android Studio v0.4.4 corrige apparemment d'autres bogues qui présentent les mêmes symptômes. Si vous possédez une version plus ancienne, vous voudrez peut-être effectuer une mise à niveau.

105
Dan J

Les étapes suivantes aident

  1. Fermez votre projet et dans votre dossier de projet, supprimez project/.idea
  2. Supprimez le dossier ~/.gradle.

Ouvrez le projet à nouveau. Tout devrait être résolu.

117
Bioz Nguyen

Solution simple

Passez par le lien et cela a fonctionné pour moi.

  1. Choisissez l’option File dans le menu situé en haut à gauche de Android studio.
  2. Sélectionnez l'option: Invalidate Cache/Restart Cela ouvrira une boîte de dialogue.
  3. Cliquez sur le premier bouton avec l'option: Invalidate and Restart
  4. Il va fermer Android Studio et le redémarrer. En outre, il commence à réindexer le projet.

Cela a résolu mon problème

Allez dans Fichier > Invalider le cache/redémarrer > Invalider et redémarrer

Source ici pour youtube

81
Manmohan Soni

1) Cliquez sur l'icône de gradation (à droite sur Android studio)

enter image description here

2) Cliquez sur le bouton d'actualisation et attendez que le problème soit résolu: D

enter image description here

43
DroidDev

J'avais toujours le même problème avec Android Studio v3.2.1 en permanence et je réglais le problème en supprimant simplement ces deux sous-dossiers du dossier .idea (Pas besoin de supprimer tout le dossier .idea) lorsqu'une synchronisation de gradins ne fonctionnait pas:

  • ./idea/caches
  • ./idea/libraries
12
GoRoS

Pour moi, supprimer le dossier du projet .gradle et .idea a résolu le problème.

12
kvadityaaz

Mon correctif hacky pour cela -

  1. Ouvrez votre fichier build.gradle
  2. Tout découper à l'intérieur dependencies{}
  3. Coller dans le bloc-notes pour une conservation temporaire super sûre
  4. Choisissez 'Sync Now' dans le fichier build.gradle
  5. Attendez que la synchronisation échoue
  6. Collez vos dépendances dans
  7. 'Sync Now' encore

J'ai essayé beaucoup de solutions et c'était la seule solution pour moi.

8
jnutttzzz

La suppression du dossier des bibliothèques dans .idea a résolu le problème pour moi. Il est situé dans racine du projet/.idea/libraries.

J'utilise Android Studio 3.1.4

7
Kamen Stoykov

J'ai eu ce problème après la mise à niveau vers Android Studio 3.1. J'ai résolu le problème en mettant à niveau tous les composants que j'utilise. J'ai donc modifié les entrées suivantes dans mon build.gradle (app):

  1. Mettez à niveau le SDK (de "compileSdkVersion 25" à "compileSdkVersion 26" ou peut-être plus lorsque vous lirez cette note):

    // compileSdkVersion 25

    compileSdkVersion 26

    Commentaire: Cette modification a obligé le programme à télécharger/installer un nouveau sdk lors de la prochaine synchronisation.

  2. Mettez à niveau appcompat-v7:

    // implémentation 'com.Android.support:appcompat-v7:25.4.0'

    implémentation 'com.Android.support:appcompat-v7:26.1.0'

  3. Mise à niveau de firebase:

    // implémentation 'com.google.firebase: firebase-ads: 11.4.2'

    implémentation 'com.google.firebase: firebase-core: 12.0.1'

    implémentation 'com.google.firebase: firebase-ads: 12.0.1'

  4. Dans PROJECT build.gradle, mettez à niveau Google Services:

    // chemin de classe 'com.google.gms: google-services: 3.1.0'

    classpath 'com.google.gms: google-services: 3.2.0'

  5. Niveau d'amélioration (de 4.4 à 4.6). De gradle-wrapper.properties: distributionUrl = https: //services.gradle.org/distributions/gradle-4.6-all.Zip

Après ces modifications, nettoyez le projet, invalidez le cache/redémarrez, supprimez le contenu .idea/libraries et resynchronisez (vous n'êtes pas sûr de l'ordre, mais TOUTES ces activités ont résolu le problème).

7
Pablo Alfonso

Étapes ci-dessous lorsque le projet est compilé avec succès, mais avec des classes non résolues (l'utilisation de toutes les classes sera en rouge dans tous les fichiers)

Étape 1. Supprimer le fichier .gradle

Étape 2. Supprimer le fichier .idea

Étape 3. Ouvrez le new Android Studio Window avec un autre Android projet) sur votre système et fermez votre projet avec erreur

Étape 3 . Maintenant, ouvrez/importez à nouveau le projet à partir de la barre d’outils du studio Android Studio -> Fichier -> Ouvrir

Remarque: Maintenant, lorsque vous importez le projet, les nouveaux dossiers .gradle et .idea sont automatiquement générés avec les dépendances résolues par le compilateur.

5
Sumith.Pattar

Faites ceci sur votre Android studio:

Fichier -> Invalider caches/Restart -> Invalidate and Restart

Cela a fonctionné pour moi. Pas besoin d'effacer le dossier ./gradle ou ./idea

4
Arun Yogeshwaran

Il semble que tout le monde utilise une approche différente pour résoudre ces problèmes. Je vais en suggérer un autre que je trouve un peu moins invasif que les autres. Lorsque j'apporte des modifications d'une bibliothèque aar que j'inclus, j'ouvre le fichier "settings.gradle" du projet.

Ensuite, coupez le module principal du projet dans la liste des projets:

include ':mainproj',

puis synchronisez votre projet. Puis collez-le de nouveau et synchronisez à nouveau votre projet. Je pense que cela est identique à certaines des étapes de suppression manuelle, mais cela vous permet de le faire à partir de IDE un peu plus rapidement et moins douloureusement.

2
Jay Snayder

J'ai trouvé moyen facile

  • Ouvrir le niveau de l'application build.gradle
  • Supprimer la dépendance qui affiche une erreur et Sync.
  • Ajoutez à nouveau la dépendance et la synchronisation.

Erreur parti!

Avant

Before

Après

After

2
Khemraj

Si toutes les réponses ci-dessus ne fonctionnent pas pour vous. Essayez simplement de mettre à jour vos dépendances avec la dernière version. Cela a fonctionné pour moi.

2
Cuong Nguyen

Supprimer le .idea/caches et .idea/libraries devrait trier toutes les erreurs.

Dans mon cas, pour une raison quelconque, la version du plugin Android n'était pas définie. J'ai essayé de vider le cache et de supprimer .gradle et .idea également, mais cela n'a pas fonctionné et après avoir erré pendant des heures, j'ai trouvé ceci.

File > Project Structure

1
Jainam Jhaveri

J'ai essayé la plupart des correctifs ci-dessus et ce qui a vraiment fonctionné a été de supprimer tous les dossiers de configuration .AndroidStudio puis de redémarrer Android Studio.

  • Emplacement: C:\Utilisateurs\votre.nomutilisateur
1
Diego Feder

Ces solutions ne m'ont pas aidé avec le même problème dans Android Studio 0.5.8.

J'ai décrit ma réponse à la même question (je suppose): https://stackoverflow.com/a/23891829/534698 Je viens de supprimer le répertoire ~/.AndroidStudioPreview (sous Ubuntu). J'ai raté tous mes Android paramètres Studio mais cela fonctionne.

1
DmitryDzz

J'avais un problème similaire auparavant, l'invalidation du cache et le redémarrage ne le résolvaient pas. Je viens de faire une Gradle Sync et tout a bien fonctionné.

0
Mina Samy

Pour moi, je me réfère un pot dans une bibliothèque de modules. Il ne peut pas résoudre le symbole dans le pot. Je trouve donc la solution à ma situation. Utilisez le chemin provided.

provided fileTree(include: ['xxx.jar'], dir: '../moduleX/libs')
0
Victor Choy

Toutes les réponses ci-dessus n'ont pas fonctionné pour moi. Mon problème était que j'avais 3 modules, dont 2 avec le même nom de package .

C'était correct pour Android studio <= 3.2.1.

Pour Android studio> 3.2.1, l'impression était rouge.

Je l'ai résolu comme cette mention ici (je viens de faire différents paquets nommer pour chaque modules): Any Android version Studio> 3.2.1 afficher la ressource rouge mais toujours compiler)

0
Z3nk

Résolu le problème en nettoyant le projet Build->Clean Project

0
Ganesh P