Intellij Symbol kann beim Import nicht aufgelöst werden

126

Dieses Problem tritt zeitweise bei verschiedenen Bibliotheken und verschiedenen Projekten auf. Beim Versuch, eine Bibliothek zu importieren, wird das Paket erkannt, der Klassenname kann jedoch nicht aufgelöst werden.

Wenn in der Importanweisung right-click -> Goto -> the package's declarationI alle dekompilierten Klassen im Seitenbereich angezeigt werden - einschließlich der von mir benötigten - Wenn ich versuche, die Importanweisung automatisch zu vervollständigen, stelle ich fest, dass die benötigte Klasse nicht in der Klasse enthalten ist Dropdown-Liste.

Ich habe bereits versucht, Caches ungültig zu machen, funktioniert nicht. Ich kann keine Klassenkonflikte finden. In meinem Klassenpfad befindet sich keine andere JAR-Datei mit demselben Paketnamen. Ich kann diese Klasse in andere Projekte importieren.

Bitte sehen Sie Screenshots:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Hat jemand eine Ahnung?

Asaf Ebgi
quelle
1
Sind Sie sicher, dass die Bibliothek zum Modul hinzugefügt wurde? Es kann als Projektbibliothek hinzugefügt werden, befindet sich jedoch nicht im Klassenpfad des Moduls.
Mkobit
ja - In der Projektstruktur wird die Bibliothek als Abhängigkeit hinzugefügt. - Eigentlich denke ich, dass dies ein Fehler in Intellij ist. - Passiert zufällig für verschiedene Bibliotheken / Projekte. - Das
Neuerstellen
Wenn alles, was in der Antwort erwähnt wird, richtig ist. Schließen Sie das Projekt und importieren Sie es erneut. Dies löste dieses Problem für mich.
Hari Krishnan

Antworten:

249

Sie können versuchen, den Cache ungültig zu machen und Intellij neu zu starten. In vielen Fällen hilft dies.

Datei -> Caches ungültig machen / neu starten

Sahitya
quelle
Reinigungsprojekt half auch
GeRyCh
2
@GeRyCh IMHO, Eclipse-Reinigung = Intellij Cache ungültig machen
Gangnus
Hat auch bei mir nicht funktioniert. Mein JUnit war eine 'Global Library'. Wenn ich dies entferne und IntelliJs eigene JUnit5-Distribution hinzufüge, funktioniert es. Wenn ich diese Abhängigkeit dann wieder in eine globale Bibliothek konvertiere, kehren die Fehler zurück. Ich vermute, dass dies ein Fehler ist, da die Konvertierung in eine Projektbibliothek stattdessen gut funktioniert.
Mark Jeronimus
1
Danke, das hat bei mir funktioniert. Ich habe gerade angefangen, Intellij zu verwenden und bin schon so verärgert darüber. Man kann nicht aus Klammern springen, muss das Programm neu starten, damit es richtig kompiliert wird. Dies ist wirklich das Windows der Java-IDEs.
Azureai
3
Ich habe dieses Problem seit einigen Wochen mindestens einmal am Tag. Betont mich wirklich, da die Neuindizierung alles ewig dauert.
Spyro
38

Dafür kann es mehrere Gründe geben. In meinem Fall war es ein falsches Quellstammproblem. Ungültige Caches funktionierten nicht mit anderen Lösungen zusammen.

Überprüfen Sie die Wurzeln Ihrer Modulquelle.

  1. Projektstruktur ( Ctrl+ Alt+ Shift+ S).

  2. Module

  3. Wählen Sie Ihr Problemmodul aus.

  4. Ändern Sie die Registerkarte oben im Fenster "Quellen".

  5. Entfernen Sie unerwünschte Quellwurzeln. Behalten Sie eine und fügen Sie src hinzu und testen Sie die Quellwurzeln in dieser Wurzel.

Vipin Thomas
quelle
1
Ich weiß nicht, ob dies bei einigen Leuten funktioniert, aber es scheint so, und ich frage mich, warum: Bei Ihrer nächsten Gradle-Synchronisierung werden tatsächlich alle Quellverzeichnisse neu erstellt, die Sie gerade entfernt haben.
Fran Marzoa
16

IntelliJ hat Probleme beim Auflösen der Abhängigkeiten. Versuche Folgendes:

  1. Klicken Sie mit der rechten Maustaste auf pom.xml -> Maven -> Reimport
  2. Klicken Sie erneut mit der rechten Maustaste auf pom.xml -> Maven -> Quellen generieren und Ordner aktualisieren
Chandlersingh
quelle
12

Überprüfen Sie Ihre Modulabhängigkeiten.

  1. Projektstruktur ( Ctrl+ Alt+ Shift+ S).
  2. Module
  3. Wählen Sie Ihr Problemmodul aus.
  4. Ändern Sie die Registerkarte oben im Fenster "Abhängigkeiten".
  5. Überprüfen Sie, welche Bibliothek benötigt wird (möglicherweise müssen Sie die angegebene Bibliothek auf der Registerkarte 'Bibliotheken' hinzufügen), oder ob das Modul hier aufgelistet ist und den richtigen Umfang hat (meistens 'Kompilieren').
Artem Moiseyenko
quelle
12

Führen Sie diesen Befehl in Ihrer Projektkonsole aus:

mvn idea:idea

Getan. Hatte dieses Problem viele Male. Versuchte 'Cache & Restart ungültig machen' und alle anderen Lösungen. Das Ausführen dieses Befehls funktioniert für mich perfekt. Ich verwende derzeit IntelliJ 2019.2, aber dies ist auch in früheren Versionen passiert und die Lösung hat auch funktioniert.

Liuver Reynier Durán Pérez
quelle
Übrigens wird dieses Maven-Plugin nicht mehr gepflegt
Nabster
11

Ich hatte ein ähnliches Problem. Mikes Kommentar half mir, mich in die Richtung zu bewegen, um es zu lösen.
Obwohl die erforderliche Bibliothek auch in meinem Projekt Teil des Moduls war, musste der Umfang geändert werden. In der Modulabhängigkeit habe ich den Bereich auf " Kompilieren " anstatt auf " Testen " geändert und es funktioniert jetzt gut für mich.

Luder
quelle
Kompilieren statt Testen funktioniert für mich. Weißt du, warum?
30.
1
Wie machst Du das? Wer ist Mike?
Cellepo
8

Datei -> Caches ungültig machen / Das Projekt neu starten oder neu erstellen hat bei mir nicht funktioniert.

Für mein Gradle-Projekt funktionierte "Alle Gradle-Projekte aktualisieren" auf der Registerkarte "Gradle" in der oberen rechten Ecke von IntelliJ v2017 mithilfe der unten gezeigten gelb markierten Schaltfläche:

Geben Sie hier die Bildbeschreibung ein

eaykin
quelle
Diese Antwort hat auch für mein Maven-Projekt funktioniert. Für IntelliJ 2018.3.4 bleibt das Symbol gleich (blaue Drehpfeile), aber der genaue Titel der Option lautet "Alle Maven-Projekte erneut importieren". Für den Autor ist es eine große Erleichterung, nach einer einstündigen Recherche eine richtige Lösung für Ihr Problem zu finden
TomateFraiche
4

Ich fand die folgende Antwort von @ jossef-harush und @ matt-leidholm über einen anderen Link nützlich

  • Klicken Sie im IntelliJ-Editor auf das rote Schlüsselwort ( Integerzum Beispiel) und drücken Sie ALT+ ENTER(oder klicken Sie auf das Glühbirnen-Symbol).
  • Wählen Sie Setup JDKaus dem Menü "Absichten"

IntelliJ Intentions-Menü

  • klicke auf Configure

Projekt SDK Auswahldialog

  • In meinem Fall war der JDKPfad falsch (gezeigt /opt/jdk1.7.0_51statt /opt/jdk1.7.0_65)

Unterbrochenes SDK-Dialogfeld konfigurieren

  • Klicken Sie auf ...und navigieren Sie zum richtigen JDKPfad

Behoben: SDK-Dialogfeld konfigurieren

  • Lassen Sie uns den Cache leeren

IntelliJ-Dateimenü

manntsheth
quelle
4

Datei -> Caches ungültig machen / Projekt neu starten und erstellen

Harte Mishra
quelle
3

Klicken Sie mit der rechten Maustaste auf die Datei pom.xml, gehen Sie zu Maven und klicken Sie auf Reimport. Ich hatte ein ähnliches Problem und das hat bei mir funktioniert.

rdutta
quelle
1

Ich habe versucht, Caches ungültig zu machen und neu zu starten, aber das einzige, was für mich funktioniert hat, war, das .idea-Verzeichnis vollständig zu löschen und dann ein neues Projekt von Grund auf neu zu erstellen.

sheldonkreger
quelle
Dies ist keine wirkliche Lösung. Ich habe es versucht, aber es hat keinen Einfluss auf meinen Fall.
Tung
1

Ich habe diesen Fehler auch mehrmals erhalten, wenn ich versuche, ein neues Java-Projekt zu erstellen.

Unten ist der Schritt, wie ich dieses dumme Problem bekam.

  1. Erstellen Sie ein leeres Projekt und erstellen Sie ein neues Verzeichnis src/main/java.
  2. Erstellen Sie das Quellpaket net.gongmingqm10.sketch.
  3. Verwendung gradle wrapper, gradle ideadie gradle Sachen für das Projekt zu bauen.
  4. Fügen Sie einige Abhängigkeiten in die build.gradleDatei ein und gradle buildimportieren Sie das Projekt erneut.
  5. Erstellen User.javaund School.javaim vorhandenen Paketnet.gongmingqm10.sketch
  6. Ich habe den Fehler erhalten, als ich versuche, import School in User.java zu verwenden.
  7. Intellij beschwert sich weiterhin und kann das Symbol beim Import nicht auflösen.

Lösung:

Erstellen Sie zuerst das Projekt und markieren Sie main / java als Quellstamm. Erstellen Sie ein neues Verzeichnis mit demselben Namen net.gongmingqm10.sketch. Verschieben Sie alle Dateien von den alten störenden Paketen in das neue Paket.

Ursache:

Verzeichnisbaum des Quellcodes

Wie Sie vom Baum sehen können. Ich habe ein Verzeichnis mit dem Namen net.gongmingqm10.sketch. Was wir aber wirklich brauchen, ist das 3-Ebenen-Verzeichnis: net-> gongmingqm10-> Skizze

Bevor ich mein Projekt in Intellij fertig erstelle, erstelle ich ein neues Verzeichnis mit dem Namen net.gongmingqm19.sketch, das mir ein echtes Verzeichnis mit dem Namen gibt net.gongmingqm10.sketch.

Wenn wir versuchen, es zu importieren. Offensichtlich, wie kann intellij importieren Sie die Datei unter dem weired Verzeichnis mit dem Namen a.b.c.

Ming Gong
quelle
Danke Alter, das war mein Problem. edit: ausarbeiten ... Ich habe von einem Maven-Modul in ein anderes kopiert und die Kopie hat die Verzeichnisse abgeflacht. Während Intellij so aussah, als hätte alles sortiert, war mein Ordner tatsächlich "abc" und nicht a> b> c.
Qbert
1

@Anton Dozortsev Ich wurde durch ein ähnliches Verhalten verrückt gemacht; Am Ende habe ich die IDE einige Male neu installiert und das Problem erst überwunden, nachdem ich die IDEA-App, alle Caches, Einstellungen usw. entfernt hatte.

Ich habe in der Zwischenzeit alle möglichen Schritte ausprobiert (wie Neustarts, Ungültigmachungen, Löschen .ideaund *.imlDateien und andere).

Es stellte sich heraus, dass das Problem auf die idea.max.intellisense.filesizeEinstellung von IntelliJ zurückzuführen war . Ich hatte es auf 100 KB eingestellt, was kleiner als die Größe meiner Abhängigkeit war, was dazu führte, dass IntelliJ es als unbekannt anzeigte, genau wie in Ihrem Screenshot.

Fix:

  1. Klicken Sie auf Hilfe -> Benutzerdefinierte Eigenschaften bearbeiten

  2. Setzen Sie die Eigenschaft auf einen größeren Wert. Der Standardwert ist 2500 KB idea.max.intellisense.filesize=2500

Mihai Bojin
quelle
1

Hatte das gleiche Problem, bis ich bemerkte, dass der src- Ordner als Root-Quelle anstelle von Java markiert war ! Das Ändern auf nur Java (src / main / java) als Quellstamm löste mein Problem Geben Sie hier die Bildbeschreibung ein

Pipo
quelle
1

Bitte versuchen Sie Datei-> Synchronisieren. Schließen Sie dann IntelliJ und öffnen Sie es erneut, bevor Sie es ungültig machen.

Einmal habe ich neu gestartet. Ich hätte ungültig gemacht, aber die Synchronisierung löschte alles nach dem Neustart.

Adam M. Erickson
quelle
0

Einfacher Neustart hat bei mir funktioniert.

Ich würde vorschlagen, zuerst einen Neustart durchzuführen und dann den Cache ungültig zu machen.

PS: Wenn Sie die Systemcaches bereinigen, wird der lokale Verlauf gelöscht.

neoguy
quelle
0

Ich hatte ein ähnliches Problem mit meinem importierten Maven-Projekt. In einem Modul kann das Symbol beim Import für einen Teil des anderen Moduls nicht aufgelöst werden (ja, ein Teil dieses Moduls kann aufgelöst werden).

Ich habe "Maven Home Directory" in eine neuere Version geändert, um mein Problem zu beheben.

Update: Gut für 1 Stunde, zurück in den defekten Status ...

Wenbin
quelle
0

Ich habe die Ursache gefunden!

In meinem Fall füge ich eine JAR-Datei hinzu, die eine Java-Quelldatei enthält, aber ich denke, die Java-Quelle ist fehlerhaft. In der Intellij Idea-Abhängigkeitsbibliothek wird die Quellautomatik automatisch hinzugefügt. Im Editor ist der Import also SCHLECHT. Remove Entfernen Sie NUR den Quellcode in ". Projektstruktur "->" Bibliothek ", es funktioniert bei mir.

verrückter Code
quelle
0

Was es für mich getan hat, ist, die Paketdatei im .idea-Ordner zu bearbeiten, da ich versehentlich Quellen zu dieser JAR-Bibliothek hinzugefügt habe und Android es nicht beheben konnte, indem die Quellzeile gelöscht wurde, wie im Fehler der b / m-Bildbibliothek markiert .

Dann bauen Sie das Problem mit Gradle und BAM wieder auf.

Mario
quelle
0

Ich hatte das gleiche Problem und der Grund dafür war die falsche Kennzeichnung der Projektquellen.

Ich habe den Stamminhalt manuell erstellt und nicht bemerkt, dass der src/main/testOrdner als Sourcesstatt markiert wurde Tests. Das ist also, warum sich meine Testklassen angenommen alle ihre Testbibliotheken haben ( JUnit, Mockitousw.) mit dem Umfang von Compile, nicht - Test.

Sobald ich src/main/testals Tests markiert und das Modul neu aufgebaut hatte, waren alle Fehler verschwunden.

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

Ich hatte dies kürzlich beim Versuch, Intellij für die Arbeit mit NiFi zu verwenden. Es stellte sich heraus, dass für NiFi Maven> = 3.1.0 erforderlich ist und die Version, mit der ich ausgecheckt hatte (ich glaube meine Standardeinstellung), 3.0.5 war. Durch das Aktualisieren der Maven-Version für das Projekt wurde das Problem behoben. In einigen Fällen kann eine Fehlausrichtung der Maven-Version eine Frage sein ... Ich denke, es ist ziemlich ungewöhnlich, aber wenn Sie so weit im Thread sind, haben Sie wahrscheinlich eine ungewöhnliches Problem :)

Isaac
quelle
0

Dasselbe Problem. Wenn diese Methoden nicht funktionieren. Sie können versuchen, die Bibliothek aus dem lokalen Maven-Repository zu löschen und erneut in pom zu importieren.

MVN-Repository

Endlich ist es gut für mich.

Projekt

Misire J.
quelle
0

file-> Project Structure-> Modules, finden Sie das Modul mit Problemen, klicken Sie darauf und wählen Sie die DependenciesRegisterkarte auf der rechten Seite. Klicken Sie auf das grüne Pluszeichen und versuchen Sie, das Glas oder die Bibliotheken hinzuzufügen, die das Problem verursachen. Das ist für mich in Ordnung.

SteveHu
quelle
0

Nach einer langen Suche stellte ich fest, dass eine Abhängigkeit auf meinem Computer in einem Maven-Projekt irgendwie beschädigt war. Das Seltsame war, dass die Abhängigkeit im kompilierten Java-Code immer noch korrekt funktionierte. Als ich jedoch meinen Maven-Abhängigkeits-Cache bereinigte und neu erstellte, verschwand das Problem und IntelliJ erkannte das Paket. Sie können dies tun, indem Sie Folgendes ausführen:

mvn dependency:purge-local-repository

Interessanterweise war die Quelle meines Problems daher nicht IntelliJ, sondern Maven selbst.

JohannesB
quelle
0

Nichts, was ich oben versucht habe, hat für mich funktioniert (nicht, dass ich jeden Vorschlag ausprobiert habe). Der Trick bestand schließlich darin, die Klasse umzubenennen. Ich habe dem Klassennamen und dem Dateinamen nur eine 2 hinzugefügt. Dann habe ich alle Referenzen manuell aufgelöst. (Da sie nicht erkannt wurden, wurden die Referenzen beim Refactoring nicht automatisch geändert.)

Nachdem die "2-Version" überall glücklich gelöst war, konnte ich die 2 umgestalten und aus der Klasse und Datei entfernen, und alles war dann so, wie es sein sollte.

graue Zellen
quelle
0

In meinem Fall bestand die Lösung darin, das Projekt als Maven-Projekt hinzuzufügen, abgesehen von der Tatsache, dass ich es als Maven-Projekt importiert habe: P.

Gehen Sie zu pom.xml -> Rechtsklick -> Als Maven-Projekt hinzufügen

Lempesis
quelle
0

Intelli iDEA verursacht diese dummen Probleme @ mal. Gehen Sie einfach zu pom.xml, klicken Sie mit der rechten Maustaste und machen Sie -> Maven -> Reimport.

Dies sollte das Problem lösen.

Aditya Goel
quelle
0

Für die Ultimate Edition 2020.1.4 musste ich Folgendes tun

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

Das Problem für mich war, dass die Bibliotheken nicht mvn -U clean installvom Terminal aus gefüllt wurden.

Geben Sie hier die Bildbeschreibung ein

user1599755
quelle
-1

Vermissen io? Versuchen Sie es import org.openide.util.io.ImageUtilities.

Shanjun Li
quelle