Intellij ne peut pas résoudre le symbole lors de l'importation

127

Ce problème se produit par intermittence pour différentes bibliothèques et différents projets. Lorsque vous essayez d'importer une bibliothèque, le package sera reconnu, mais le nom de la classe ne peut pas être résolu.

Si sur l'instruction d'importation right-click -> Goto -> the package's declaration, je vois toutes les classes décompilées affichées dans le volet latéral - Y compris celles dont j'ai besoin - Si j'essaye de compléter automatiquement l'instruction d'importation, je remarque que la classe dont j'ai besoin n'est pas présentée dans le menu déroulant.

J'ai déjà essayé d'invalider les caches, cela ne fonctionne pas. Je ne trouve aucun conflit de classe - il n'y a pas d'autre fichier jar dans mon chemin de classe avec le même nom de package. Je suis capable d'importer cette classe dans d'autres projets.

Veuillez voir les captures d'écran:

entrez la description de l'image ici

entrez la description de l'image ici

Quelqu'un a une idée?

Asaf Ebgi
la source
1
Êtes-vous sûr que la bibliothèque a été ajoutée au module? Il pourrait être ajouté en tant que bibliothèque de projet mais pas sur le chemin de classe des modules.
mkobit
oui - Dans la structure du projet, la bibliothèque est ajoutée en tant que dépendance - En fait, je pense qu'il s'agit d'un bogue dans Intellij - Cela se produit de manière aléatoire pour différentes bibliothèques / projets - Recréer le projet à partir de zéro le corrige généralement
Asaf Ebgi
Si tout ce qui est mentionné dans la réponse est correct. fermez le projet et réimportez à nouveau. cela a résolu ce problème pour moi.
Hari Krishnan

Réponses:

250

vous pouvez essayer d'invalider le cache et de redémarrer intellij, dans de nombreux cas, cela aidera.

Fichier -> Invalider les caches / Redémarrer

sahitya
la source
projet de nettoyage a également aidé
GeRyCh
2
@GeRyCh IMHO, Eclipse cleaning = Intellij Invalidate cache
Gangnus
Cela n'a pas fonctionné pour moi aussi. Mon JUnit était une «bibliothèque globale». Lorsque je supprime cela et ajoute la propre distribution JUnit5 d'IntelliJ, cela fonctionne. Lorsque je convertis à nouveau cette dépendance en bibliothèque globale, les erreurs reviennent. Je soupçonne que c'est un bogue car le convertir en une bibliothèque de projet fonctionne bien.
Mark Jeronimus
1
Merci, cela a fonctionné pour moi. Je viens de commencer à utiliser Intellij et j'en suis déjà très ennuyé. On ne peut pas sauter hors des parenthèses, il faut redémarrer le programme pour qu'il se compile correctement, c'est vraiment le Windows de Java IDE.
azureai
3
J'ai ce problème au moins une fois par jour depuis quelques semaines. Cela me stresse vraiment car la réindexation de tout prend une éternité.
spyro
38

Il peut y avoir plusieurs raisons à cela. Dans mon cas, c'était un problème de racine source incorrect. Les caches invalides ne fonctionnaient pas avec d'autres solutions.

Vérifiez les racines des sources de votre module.

  1. Structure du projet ( Ctrl+ Alt+ Shift+ S).

  2. Modules

  3. Sélectionnez votre module de problème.

  4. Changer d'onglet en haut de la fenêtre "Sources".

  5. Supprimez les racines sources indésirables. Gardez-en un et ajoutez src et testez les racines des sources dans cette racine.

Vipin Thomas
la source
1
Je ne sais pas si cela fonctionne pour certaines personnes, mais il semble que oui, et je me demande pourquoi: en fait, votre prochaine synchronisation Gradle recréera tous ces répertoires sources que vous venez de supprimer.
Fran Marzoa
16

IntelliJ a des problèmes pour résoudre les dépendances. Essayez ce qui suit:

  1. Faites un clic droit sur pom.xml -> Maven -> Réimporter
  2. Encore une fois, faites un clic droit sur pom.xml -> Maven -> Générer les sources et mettre à jour les dossiers
Chandlersingh
la source
12

Vérifiez les dépendances de vos modules.

  1. Structure du projet ( Ctrl+ Alt+ Shift+ S).
  2. Modules
  3. Sélectionnez votre module de problème.
  4. Changer d'onglet en haut de la fenêtre "Dépendances".
  5. Vérifiez la bibliothèque nécessaire (peut-être que vous devez ajouter la bibliothèque spécifiée dans l'onglet 'bibliothèques') ou le module a répertorié ici et il a la bonne portée ('complile' principalement).
Artem Moiseyenko
la source
12

Exécutez cette commande dans votre console de projet:

mvn idea:idea

Terminé. Eu ce problème plusieurs fois. J'ai essayé «Invalidate Cache & Restart» et toutes les autres solutions. L'exécution de cette commande fonctionne parfaitement pour moi. J'utilise actuellement IntelliJ 2019.2, mais cela s'est également produit dans les versions précédentes et la solution fonctionnait également.

Liuver Reynier Durán Pérez
la source
Btw ce plugin maven n'est plus maintenu
nabster
11

J'ai été confronté à un problème similaire, le commentaire de Mike m'a aidé à aller dans le sens de le résoudre.
Bien que la bibliothèque requise fasse également partie du module de mon projet, elle nécessitait un changement de portée. Dans la dépendance du module, j'ai changé la portée en " Compiler " plutôt que " Test " et cela fonctionne très bien pour moi maintenant.

friponne
la source
Compiler plutôt que tester fonctionne pour moi. Est-ce que tu sais pourquoi?
30
1
Comment est-ce que tu fais ça? Qui est Mike?
cellepo
8

Fichier -> Invalider les caches / redémarrer ou reconstruire le projet n'a pas fonctionné.

Ce qui a fonctionné pour mon projet Gradle était de "Actualiser tous les projets Gradle" à partir de l'onglet Gradle dans le coin supérieur droit d'IntelliJ v2017, en utilisant le bouton jaune indiqué ci-dessous:

entrez la description de l'image ici

eaykin
la source
Cette réponse a également fait le travail pour mon projet Maven. Pour IntelliJ 2018.3.4, l'icône reste la même (flèches bleues tournantes) mais le titre exact de l'option est appelé `` Réimporter tous les projets Maven ''. Énorme grand pour l'auteur, il est tellement soulageant de trouver une solution correcte à votre problème après une heure de recherche
TomateFraiche
4

J'ai trouvé la réponse suivante de @ jossef-harush et @ matt-leidholm utile à partir d'un autre lien

  • dans l'éditeur IntelliJ, cliquez sur le mot-clé rouge ( Integerpar exemple) et appuyez sur ALT+ ENTER(ou cliquez sur l'icône de l'ampoule)
  • sélectionnez Setup JDKdans le menu des intentions

Menu d'intentions IntelliJ

  • cliquer sur Configure

Boîte de dialogue de sélection du SDK de projet

  • Dans mon cas, le JDKchemin était incorrect (pointé sur /opt/jdk1.7.0_51au lieu de /opt/jdk1.7.0_65)

Boîte de dialogue Configurer le SDK cassée

  • cliquez sur le ...et naviguez vers le bon JDKchemin

Correction de la boîte de dialogue Configurer le SDK

  • effaçons le cache

Menu Fichier IntelliJ

Manntsheth
la source
4

Fichier -> Invalidate Caches / Restart And Build your project

Harsh Mishra
la source
3

Faites un clic droit sur le fichier pom.xml, allez dans Maven cliquez sur Réimporter. J'ai eu un problème similaire et cela a fonctionné pour moi.

rdutta
la source
1

J'ai essayé d'invalider les caches et de redémarrer, mais la seule chose qui a fonctionné pour moi a été d'effacer complètement le répertoire .idea, puis de créer un nouveau projet à partir de zéro.

Sheldonkreger
la source
Ce n’est pas vraiment une solution. J'avais l'habitude de l'essayer mais cela n'affecte pas mon cas.
Tung
1

J'ai également eu cette erreur plusieurs fois lorsque j'essaie de créer un nouveau projet java.

Vous trouverez ci-dessous comment j'ai eu ce problème stupide.

  1. Créez un projet vide et créez un nouveau répertoire src/main/java.
  2. Créez le package source net.gongmingqm10.sketch.
  3. Utilisez gradle wrapper, gradle ideapour créer les éléments de gradation du projet.
  4. Ajoutez des dépendances dans le build.gradlefichier et gradle buildréimportez le projet.
  5. Créer User.javaet School.javadans le package existantnet.gongmingqm10.sketch
  6. J'ai eu l'erreur pendant que j'essaie d'utiliser import School dans User.java.
  7. Intellij continue de se plaindre ne peut pas résoudre le symbole lors de l'importation.

Solution:

Créez d'abord le projet et marquez le fichier main / java comme racine source. Créez un nouveau répertoire avec le même nom net.gongmingqm10.sketch. Déplacez tous les fichiers des anciens packages problématiques vers le nouveau package.

Cause première:

Arborescence de répertoires du code source

Comme vous pouvez le voir sur l'arbre. J'ai un répertoire nommé net.gongmingqm10.sketch. Mais ce dont nous avons vraiment besoin, c'est du répertoire à 3 niveaux: net-> gongmingqm10-> sketch

Mais avant de terminer la construction de mon projet dans Intellij, je crée un nouveau répertoire nommé net.gongmingqm19.sketch, qui me donnera un vrai répertoire avec le nom net.gongmingqm10.sketch.

Lorsque nous essayons de l'importer. Evidemment, comment intellij peut importer le fichier sous le répertoire weired avec le nom a.b.c.

Ming Gong
la source
Merci mec, c'était mon problème. edit: élaborer ... J'ai copié d'un module maven à un autre, et la copie a aplati les répertoires. alors qu'Intellij avait l'air d'avoir tout trié, mon dossier était en fait "abc" plutôt que a> b> c.
Qbert
1

@Anton Dozortsev J'ai été rendu fou par un comportement similaire; J'ai fini par réinstaller l'IDE plusieurs fois, ne surmontant le problème qu'après avoir supprimé l'application IDEA, tous les caches, les préférences, etc.

J'ai essayé toutes sortes d'étapes dans l'intervalle (comme les redémarrages, les invalidations, la suppression .ideaet les *.imlfichiers, et autres.)

Il s'avère que le problème était dû au idea.max.intellisense.filesizeréglage d'IntelliJ . Je l'avais défini sur 100 Ko, ce qui était plus petit que la taille de ma dépendance, ce qui a conduit IntelliJ à l'indiquer comme inconnu, comme dans votre capture d'écran.

Réparer:

  1. Cliquez sur Aide -> Modifier les propriétés personnalisées

  2. Définissez la propriété sur une valeur plus élevée; la valeur par défaut est 2500 Ko idea.max.intellisense.filesize=2500

Mihai Bojin
la source
1

J'ai eu le même problème jusqu'à ce que je remarque que le dossier src était marqué comme source racine au lieu de java ! Changer uniquement pour java (src / main / java) pour être la racine source a résolu mon problème entrez la description de l'image ici

Pipo
la source
1

Après une longue recherche, j'ai découvert qu'une dépendance était en quelque sorte corrompue sur ma machine dans un projet maven. La chose étrange était que la dépendance fonctionnait toujours correctement dans le code java compilé. Cependant, lorsque j'ai nettoyé et reconstruit mon cache de dépendances maven, le problème a disparu et IntelliJ a reconnu le package. Vous pouvez le faire en exécutant:

mvn dependency:purge-local-repository

Curieusement, la source de mon problème n'était donc pas IntelliJ, mais maven lui-même.

JohannesB
la source
1

Veuillez essayer Fichier-> Synchroniser. Puis fermez et rouvrez IntelliJ avant de l'invalider.

Une fois que j'ai redémarré. J'aurais invalidé mais la synchronisation a tout effacé après le redémarrage.

Adam M. Erickson
la source
0

Le redémarrage simple a fonctionné pour moi.

Je suggère d'abord d'essayer avec le redémarrage, puis vous pouvez opter pour invalider le cache.

PS: le nettoyage des caches système entraînera l'effacement de l'historique local.

Neoguy
la source
0

J'ai eu un problème similaire avec mon projet Maven importé. Dans un module, il ne peut pas résoudre le symbole à l'importation pour une partie de l'autre module (oui, une partie de ce module peut être résolue).

J'ai changé le "répertoire personnel de Maven" pour une version plus récente résolu mon problème.

Mise à jour: bon pendant 1 heure, retour à l'état cassé ...

Wenbin
la source
0

J'ai trouvé la cause source!

Dans mon cas, j'ajoute un fichier jar incluant un fichier source java, mais je pense que la source java est mauvaise, dans la bibliothèque de dépendances Intellij Idea, elle ajoute la source automatique, donc dans l'éditeur, l'importation est MAUVAISE , Il suffit de supprimer le code source dans " Structure du projet "->" Bibliothèque ", cela fonctionne pour moi.

code fou
la source
0

Ce qui m'a fait est de modifier le fichier du package dans le dossier .idea car j'ai accidentellement ajouté des sources à cette bibliothèque de jar et Android n'a pas pu le résoudre en supprimant la ligne sources comme indiqué dans l' erreur de bibliothèque d' images b / m .

Ensuite, reconstruisez le problème de gradle et de bam résolu.

mario
la source
0

J'ai eu le même problème et la raison en était le marquage incorrect des sources du projet.

J'ai créé manuellement le contenu racine et je n'ai pas remarqué que le src/main/testdossier était marqué comme à la Sourcesplace de Tests. Voilà pourquoi mes cours d'essai ont été supposés avoir toutes leurs bibliothèques de test ( JUnit, Mockito, etc.) avec la portée de Compile, improbabilité.

Dès que j'ai marqué src/main/testcomme Tests et reconstruit le module, toutes les erreurs ont disparu.

Евгений Гордиенко
la source
0

J'ai eu cela récemment en essayant d'utiliser Intellij pour travailler sur NiFi, il s'est avéré que le problème était que NiFi nécessite Maven> = 3.1.0 et la version avec laquelle j'avais vérifié (je suppose que ma valeur par défaut) était 3.0.5. La mise à jour de la version Maven pour le projet l'a corrigé, donc dans certains cas, le mauvais alignement de la version Maven peut être une chose à regarder ... Je suppose que c'est assez inhabituel, mais si vous arrivez aussi loin sur le fil, vous avez probablement un problème inhabituel :)

Isaac
la source
0

Le même problème. Si ces méthodes ne fonctionnent pas. vous pouvez essayer de supprimer la lib du référentiel maven local et de la réimporter dans pom.

référentiel mvn

Enfin ça me va.

projet

Misire J
la source
0

file-> Project Structure-> Modules, recherchez le module avec des problèmes, cliquez dessus et choisissez l' Dependenciesonglet à droite. Cliquez sur le signe plus vert, essayez d'ajouter le pot ou les bibliothèques à l'origine du problème. Ça marche pour moi.

SteveHu
la source
0

Rien de ce que j'ai essayé ci-dessus n'a fonctionné pour moi (pas que j'ai essayé toutes les suggestions). Ce qui a finalement fait l'astuce a été de renommer la classe - j'ai juste ajouté un 2 au nom de la classe et au nom de fichier. Ensuite, j'ai résolu toutes les références manuellement. (Comme ils n'ont pas été reconnus, le refactoring n'a pas changé les références automatiquement.)

Une fois que la "version 2" a été résolue partout, j'ai pu refactoriser et supprimer le 2 de la classe et du fichier, et tout était alors comme il se doit.

matière grise
la source
0

dans mon cas, la solution était d'ajouter le projet en tant que projet maven, outre le fait que j'ai importé en tant que projet maven: P

aller à pom.xml -> clic droit -> ajouter en tant que projet maven

lempesis
la source
0

Intelli iDEA provoque ces stupides problèmes @ fois. Simple goto pom.xml, faites un clic droit et faites -> Maven -> Réimporter.

Cela devrait résoudre le problème.

Aditya Goel
la source
0

Pour l'édition 2020.1.4 Ultimate, j'ai dû faire ce qui suit

View -> Maven -> Generate Sources and Update Folders For all Projects

Le problème pour moi était que les bibliothèques ne se remplissaient pas mvn -U clean installdepuis le terminal.

entrez la description de l'image ici

user1599755
la source
-1

Manquant io? Essayez import org.openide.util.io.ImageUtilities.

Shanjun Li
la source