Android Studio dit "ne peut pas résoudre le symbole" mais le projet compile

j'importe twitter4j dans AndroidStudio, en utilisant ce qui suit dans ma compilation.gradle:

dependencies {
  compile 'com.android.support:support-v4:18.0.+'
  compile files('libs/twitter4j-core-3.0.4.jar')
}

le projet compile fine, et je peux créer des objets twitter sans problème. Cependant, dans Android studio, Tout ce qui se réfère que la bibliothèque montre "ne peut pas résoudre le symbole" et affiche en rouge. Que dois-je faire pour que Android Studio reconnaisse la bibliothèque?

j'ai déjà essayé de reconstruire le projet ./gradlew propre, et de fermeture et de réouverture de mon projet.

85
demandé sur HaskellMan 2013-10-22 07:52:16

23 réponses

aucune idée si cela va fonctionner ou non, mais ma seule pensée jusqu'à présent: cliquez avec le bouton droit de la souris sur le fichier jar dans l'arborescence AS et sélectionnez "Ajouter comme bibliothèque..."

EDIT: Vous pouvez le faire "Fichier" -> "Invalider les Caches..."et sélectionnez "Invalider et Redémarrer" pour résoudre ce problème.

EDIT 2: cette correction devrait fonctionner pour tous les incidents similaires et n'est pas une résolution spécifique à twitter4j.

215
répondu doydoy 2014-05-09 10:15:59

essayez de changer l'ordre des dépendances dans le fichier > Structure du projet > (sélectionnez votre projet) > dépendances.

invalider les Caches n'a pas fonctionné pour moi, mais déplacer ma construction du bas de la liste au sommet l'a fait.

28
répondu Nauraushaun 2015-05-15 14:35:49

C'est ce qui a fonctionné pour moi.

Dans le panneau Projet, cliquez-droit sur le nom du projet, et sélectionnez Open Module Settings dans le menu contextuel.

puis changez le Compile SDK Version en version minimale disponible (la version sdk minimale que vous avez définie dans le projet). attendez que android studio charge tout.

il vous donnera quelques erreurs, ignorez-les.

maintenant allez à votre fichier java et android studio vous suggérera d'importer

importation android.soutien.v4.App.FragmentActivity;

L'Importer, puis revenir à Open Module Settings et changer la version de compilation sdk à nouveau à ce qu'il était avant.

attendez que les choses se chargent et voilà.

9
répondu Georgi Dimitrov 2016-07-05 17:44:08

pour mine a été causé par le projet de bibliothèque importée, tapez quelque chose dans la construction.Grad et supprimez-le à nouveau et appuyez sur sync maintenant, l'erreur a disparu.

7
répondu Beeing Jk 2017-11-14 03:33:05

quand j'ai vécu à ce problème (codes de couleur rouge mais ils fonctionnent correctement) dans mon projet;

comme premier, je l'ai fait que (File -> Indicate Cashes) --> (Invalidate and Restart).

comme dernier, je resyncre ma construction.fichier Grad dans mon application. Après le problème a été résolu.

3
répondu oguzhan 2015-11-14 07:28:38

j'ai également eu ce problème avec mon application Android en fonction de certaines de mes propres bibliothèques Android (utilisant Android Studio 3.0 et 3.1.1).

chaque fois que j'ai mis à jour une lib et que je reviens à l'application, déclenchant une synchronisation Gradle, Android Studio n'était pas capable de détecter les changements de code que j'ai faits à la lib. La Compilation a bien fonctionné, mais Android Studio a montré des lignes d'erreur rouges sur certains codes en utilisant la lib.

après enquête, j'ai découvert que c'est parce que gradle garde pointant vers une ancienne version compilée de mes libs. Si vous allez à votreprojet/.idée/bibliothèques/ vous verrez une liste de fichiers xml qui contient le lien vers la version compilée de votre libs. Ces fichiers commencent par Grad__artifacts_*.xml (où * est le nom de vos fichiers).

Donc, pour Android Studio pour prendre la dernière version de votre libs, vous devez supprimer ces Gradle__artefacts_*.les fichiers xml, et Android Studio va les régénérer, pointant vers la dernière compilation une version de votre libs.

si vous ne voulez pas faire cela manuellement chaque fois que vous cliquez sur" Gradle sync " (qui voudrait faire cela...), vous pouvez ajouter cette petite tâche gradle dans le build.fichier grad de votre application.

task deleteArtifacts {
    doFirst {
        File librariesFolderPath = file(getProjectDir().absolutePath + "/../.idea/libraries/")
        File[] files = librariesFolderPath.listFiles({ File file -> file.name.startsWith("Gradle__artifacts_") } as FileFilter)

        for (int i = 0; i < files.length; i++) {
            files[i].delete()
        }
    }
}

et pour que votre application exécute toujours cette tâche avant de faire une synchronisation Grad, vous avez juste besoin d'aller dans la fenêtre Grad, puis de trouver la tâche" deleteArtifacts "sous yourApp/Tasks/other/, cliquez droit dessus et sélectionnez "Execute" Avant de Synchronisation" (voir ci-dessous).

Gradle window to configure task execution

maintenant, chaque fois que vous faites une synchronisation Gradle, Android Studio sera forcé d'utiliser la dernière version de votre libs.

3
répondu nah0y 2018-05-28 15:46:15

ce problème m'est arrivé lorsque mon projet Glass n'utilisait pas le SDK installé dans L'emplacement par défaut D'Android Studio. J'utilisais un autre emplacement que J'avais précédemment à partir D'ADT, puisque j'essayais d'éviter de tout télécharger à nouveau. Une fois que j'ai pointé le projet vers L'emplacement du SDK dans L'emplacement d'installation D'Android Studio, le problème a disparu.

2
répondu DaveTrux 2014-07-23 00:58:26

j'ai eu ce problème pendant quelques jours maintenant et finalement compris! Toutes les autres solutions n'ont pas fonctionné pour moi btw.

Solution

: j'avais des caractères spéciaux dans le chemin du projet!

assurez-vous de n'avoir aucune de celles-ci et vous devriez être bien ou au moins l'une des autres solutions doivent travailler pour vous.

Espérons que cela aide quelqu'un!

2
répondu grAPPfruit 2015-08-20 12:01:39

j'ai eu le même problème récemment avec Android Studio 1.3. La seule solution était de supprimer les .Grad and .idea folders et de réimporter le projet dans Android Studio.

1
répondu ticofab 2015-07-31 07:53:49

Pour ceux, qui ont essayé de la accepté de répondre et n'ont pas de succès,

j'ai aussi essayé la réponse acceptée et n'ai pas travaillé pour moi. Après cela, j'ai mis à jour mon projet avec le dépôt et synchronisé le projet et les avertissements ne pouvait pas résoudre sont partis.

1
répondu drJava 2016-02-11 12:41:23

invalider les Caches n'a pas fonctionné pour moi (cette fois). Pour moi, ça m'a suffi de changer le Grad et de synchroniser à nouveau. Ou https://stackoverflow.com/a/29565362/2000162

1
répondu TomCobo 2017-05-23 12:03:02

Invalidate Caches / Restart n'a pas marché pour moi cette fois.

a trouvé une solution comme celle-ci:

  1. supprimer la ligne compile *** ou implementation *** dans build.gradle.

  2. nettoyer et reconstruire. Les erreurs devraient être soulevées ici.

  3. ajouter la ligne de l'étape 1 Retour à construire.gradle.

  4. Propre et reconstruire.

Bizarre...

1
répondu ZhangLei 2018-05-16 18:17:18

dans mon cas, j'avais créé un nouveau fichier en utilisant L'interface graphique et défini une interface dans le fichier. J'ai continué à obtenir cette erreur de symbole parce que le fichier n'était pas un fichier "java". Il n'avait pas d'extension.

après avoir modifié l'extension du fichier en".java", le système trouve correctement les symboles.

0
répondu user3549463 2015-05-25 16:15:15

dans mon cas, le fichier jar n'avait pas de META-INF/MANIFEST.Fichier MF. Après en avoir ajouté un, ça a marché!

0
répondu Mahe 2017-01-24 11:46:05

pour mon cas de travail avec AndroidStudio 2.2.3 la solution a été de changer l'emballage/la distribution gradle pour utiliser un local dans les paramètres Gradle (en dépit d'être "recommandé"). enter image description here

0
répondu Hack06 2017-02-21 11:35:06

ça a marché pour moi-- (Fichier -> Indiquer Cashes) --> (Invalider et Redémarrez-le).

0
répondu Shubham Soni 2017-06-19 04:14:24

j'ai essayé d'Invalider le cache/redémarrer ou de nettoyage de Projet -> projet de reconstruction. Ces n'a pas fonctionné pour moi.

la solution finale a été la fenêtre de projet ouverte sur le côté gauche de IDE, sous le mode de projet, supprimer .Grad and .idea folder, puis vous pouvez invalider les caches et redémarrer. Ce fixe.

0
répondu 2018-05-13 00:27:02

si rien d'autre n'a aidé, vous pouvez faire comme Android Studio soudainement ne peut pas résoudre les symboles recommande:

  • Sortie D'Android Studio
  • sauvegarder votre projet
  • supprimer tous les .iml et les fichiers .dossier idée
  • relancer Android Studio et réimporter votre projet
0
répondu serv-inc 2018-05-25 12:25:39

Changement de compiler à la mise en œuvre dans la construction.gradle.

0
répondu Raulp 2018-07-21 17:59:19

changer les paramètres d'injection de langage a fonctionné pour moi.

placer le curseur sur l'un des codes soulignés en rouge et Alt + Enter 151980920"

enter image description here

sélectionnez maintenant Language Injection Settings et une fenêtre s'ouvrira comme indiqué ci-dessous.

enter image description here

décochez L'option sélectionnée et cliquez sur Ok

enter image description here

J'espère que ça aidera quelqu'un.

0
répondu Tricky Bay 2018-08-19 20:18:47

cela m'est arrivé quand j'ai enlevé tous les fichiers dans .gradle/caches , puis studio a téléchargé les dépendances. Les dépendances non indiquées dans le External Libraries mais je peux construire App avec succès. rebuild clean Invalidate and Restart n'ont pas d'effet. J'ai résolu le problème par les étapes:

  • Fermer Android Studio complètement
  • Supprimer .idea paquet dans votre projet
  • Redémarrer Android Studio
0
répondu joe 2018-09-11 11:41:06

j'ai essayé, mais rien n'a fonctionné pour moi:

  • Invalidate Caches / Restart
  • Changing the order of dependencies
  • Sync project with Gradle Files
  • Clean -> Rebuild Project

dans mon cas, faites juste:

  • Delete all files in .idea/libraries folder
  • Rebuild Project
0
répondu Conan 2018-09-20 03:38:23

vous devez redémarrer Android Studio.

-2
répondu george mano 2016-11-05 23:22:25