49 votes

Android Studio ne peut pas résoudre le symbole mais le code s'exécute correctement

J'ai récemment créé un fichier Jar de bibliothèque que j'ai importé dans mon projet Android. Je suis capable d'appeler des fonctions et d'utiliser des classes présentes dans ce fichier Jar, mais Android Studio continue de me dire qu'il ne peut pas "résoudre le symbole" de la classe que j'utilise. Veuillez voir la capture d'écran ci-dessous :

SDK class - cannot find symbol

Cliquez ici pour l'image en taille réelle

Le code se construit et s'exécute avec succès. La fonction isThisThingWorking() retourne simplement true et c'est exactement ce que boolean blah est réglé sur.

J'ai essayé d'appuyer sur le bouton Sync Project with Gradle Files et en utilisant le bouton Invalidate Caches / Restart... à partir de l'option File mais rien de tout cela n'a résolu le problème. Que puis-je faire pour que l'IDE Android Studio n'affiche pas le menu Cannot resolve symbol 'xxxSDK' erreur ?

0 votes

Qu'est-ce que tu veux dire ? J'ai accepté la réponse qui a résolu mon problème spécifique. La réponse qui a reçu le plus de votes positifs ici s'applique à la plupart des personnes qui ont le même problème. Je ne connais pas d'autres solutions, malheureusement.

0 votes

@grAPPfruit la prémisse de la question est différente et la date affichée est antérieure à la question que vous avez liée.

0 votes

En 2018, cela peut encore arriver lorsque votre Android Studio et Gradle ne sont pas d'accord. Je l'ai corrigé en utilisant trois options comme discuté ici : stackoverflow.com/questions/50313885/

127voto

Senthil Points 441

J'ai été confronté à ce problème lorsqu'IntelliJ IDEA a été fermé brusquement en raison d'un crash du système d'exploitation.

Vous pouvez faire "Fichier" -> "Invalider les caches...", et sélectionner l'option "Invalider et redémarrer" pour résoudre ce problème.

0 votes

Merci :) mon problème comme vous, c'est qu'après le crash de l'OS :D

0 votes

Après avoir brouillé beaucoup de choses, ça s'est arrangé. Cela arrive principalement aux projets importés par Eclipse.

0 votes

Merci d'avoir posté ce message. C'est la bonne solution.

5voto

BVB Points 1931

EDIT : Pour la plupart des gens, La réponse de Senthil sera plus approprié. Je laisse celle-ci comme réponse acceptée car elle a résolu mon problème spécifique.

J'ai trouvé le problème - mon SDK.jar n'a pas été généré correctement. Il comprenait .java au lieu de .class fichiers. Cela explique pourquoi l'IDE n'était pas en mesure de trouver la classe SDK. La structure du paquet était encore correcte dans le Jar, c'est pourquoi le nom du paquet lui-même n'est pas de couleur rouge. Le code a fonctionné correctement, car le compilateur savait qu'il fallait compiler la classe .java des fichiers.

Pour résoudre ce problème, j'ai modifié mon build.gradle de mon projet SDK pour inclure .class au lieu de .java lors de la création du bocal. L'inclusion de cette nouvelle jarre au lieu de l'ancienne a résolu le problème de l'IDE.

2 votes

C'est logique. Et si le .jar ne m'appartient pas. Comment puis-je le faire passer de .java à .class ?

0 votes

Vous devrez compiler les fichiers Java.

1 votes

Désolé, mais je n'ai pas de dépendance pour les fichiers '.java'. Pouvez-vous afficher la ligne de votre fichier build.gradle ?

3voto

free3dom Points 4024

Essayez d'ajouter la bibliothèque au Project Structure .

Pour ce faire, dans le menu, choisissez File -> Project Structure . Sélectionnez le Libraries et cliquez sur le bouton vert + pour ajouter votre bibliothèque.

0 votes

Je l'ai déjà ajouté à cet endroit en faisant un clic droit sur le bocal et en sélectionnant l'option Add as Library option.

2voto

Tardo Points 118

Cela m'arrivait toujours après avoir changé de branche sur mon projet actuel : beaucoup d'erreurs insensées signalées par l'IDE.

La solution consiste à modifier et force a build.gradle synchronisation .

2voto

whateven Points 234

Cela a marché pour moi :

Aller à File -> Sync Project with Gradle Files .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X