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.
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.
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.
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à.
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.
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.
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).
maintenant, chaque fois que vous faites une synchronisation Gradle, Android Studio sera forcé d'utiliser la dernière version de votre libs.
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.
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!
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.
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.
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
Invalidate Caches / Restart
n'a pas marché pour moi cette fois.
a trouvé une solution comme celle-ci:
-
supprimer la ligne
compile ***
ouimplementation ***
dans build.gradle. -
nettoyer et reconstruire. Les erreurs devraient être soulevées ici.
-
ajouter la ligne de l'étape 1 Retour à construire.gradle.
-
Propre et reconstruire.
Bizarre...
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.
dans mon cas, le fichier jar n'avait pas de META-INF/MANIFEST.Fichier MF. Après en avoir ajouté un, ça a marché!
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é").
ça a marché pour moi-- (Fichier -> Indiquer Cashes) --> (Invalider et Redémarrez-le).
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.
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
Changement de compiler à la mise en œuvre dans la construction.gradle.
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"
sélectionnez maintenant
Language Injection Settings
et une fenêtre s'ouvrira comme indiqué ci-dessous.
décochez L'option sélectionnée et cliquez sur Ok
J'espère que ça aidera quelqu'un.
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
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