Bei der IntelliJ-Überprüfung wird das Symbol "Symbol kann nicht aufgelöst werden" angezeigt, der Code wird jedoch weiterhin kompiliert

569

Plattform: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
Betriebssystem: Windows 7

Ich habe also eine seltsame Situation mit IntelliJ, die mich völlig verblüfft hat. Ich richte ein Maven-Projekt ein und füge log4j als Abhängigkeit in die Datei pom.xml ein. Die IDEA-Inspektionen laufen einwandfrei und meine Unit-Tests werden alle kompiliert und ausgeführt.

Anschließend habe ich die jmime-Bibliothek von hunnysoft mit der folgenden Datei mvn install: install-file zu meinem lokalen Maven-Repository hinzugefügt.

mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar

Maven hat die JAR-Datei problemlos in meinem lokalen Repository installiert.

Ich ging dann zu IntelliJs Einstellungen => Maven => Repository-Dienste und aktualisierte mein lokales Repository (damit IntelliJ den Repository-Inhalt neu indiziert).

Schließlich habe ich meiner pom.xml-Datei die folgende Abhängigkeit hinzugefügt (direkt über der log4j-Abhängigkeit).

<dependency>
    <groupId>jmime</groupId>
    <artifactId>jmime</artifactId>
    <version>3.1.1e</version>
</dependency>

Ich erstelle jetzt eine neue Klasse wie folgt:

package com.stackoverflow.question;

import org.apache.log4j.Logger;
import com.hunnysoft.jmime.ByteString;
import com.hunnysoft.jmime.Field;
import com.hunnysoft.jmime.FieldBody;

public class StackOverflowQuestion {
    public Field create(String name, String text) {
        Logger.getLogger(getClass()).debug("create entered");
        FieldBody body = new FieldBody();
        body.setText(new ByteString(text));
        Field field = new Field();
        field.setFieldName(name);
        field.setFieldBody(body);
        return field;
    }
}

Nun zur Verrücktheit. Der Intentionsmechanismus von IntelliJ erkennt den Logger-Import in der Maven-Pom-Datei und erkennt ihn einwandfrei. Bei allen hunnysoft-Importen wird jedoch Folgendes gemeldet: "Das Symbol 'ByteString / Field / FieldBody' kann nicht aufgelöst werden", ABER Build => Compile 'StackOverflowQuestion.java' kompiliert alles korrekt und der für diese Klasse erstellte Komponententest läuft jedoch einwandfrei Die Absichten markieren den Aufruf von create () auch als Problembereich.

Irgendwie ignoriert IntelliJ die Datei jmime.jar für das Intentionssubsystem. Ich bin verwirrt, weil die log4j-Abhängigkeit gut funktioniert und alles gut kompiliert und ausgeführt wird. F12 ("Gehe zu Deklaration") funktioniert beim Logger-Import, bricht jedoch bei allen jmime-Importen ab.

Eine andere Sache: Wenn ich im Fenster "Projekte" zur Ansicht "Pakete" gehe, wird das Paket "com.hunnysoft.jmime" angezeigt und ich kann ALLE Klassen sehen, die ich im obigen Codeausschnitt unter "Bibliotheken" importiert habe. . Wenn Sie die obige Abhängigkeit aus der Datei pom.xml entfernen, verschwindet dieses Paket und die Kompilierung wird unterbrochen.

Es scheint, dass der Klassenpfad der Inspektion unterbrochen ist, aber es scheint nirgendwo in den Einstellungen => Absichten | eine Einstellung dafür zu geben Compiler-Bereiche (nicht, dass ich solche Einstellungen erwartet hätte, ich glaube, die IDEA sollte bereits den richtigen Klassenpfad basierend auf der POM-Datei und dem JDK kennen).

Als letztes Experiment habe ich ein brandneues Standard-J2SE-Anwendungsprojekt (ohne Verwendung von maven) erstellt und die Datei jmime.jar als eine ihrer Bibliotheken direkt zum Projekt hinzugefügt. Ich habe genau die gleichen Probleme wie oben in diesem neuen Projekt beschrieben.

Hier ist die MANIFEST.MF aus der jmime-JAR-Datei.

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.5.4
Created-By: 10.0-b23 (Sun Microsystems Inc.)

Name: com/hunnysoft/jmime/
Sealed: true
Specification-Title: Hunny JMIME
Specification-Version: 3.1.1
Specification-Vendor: Hunny Software, Inc.
Implementation-Title: com.hunnysoft.jmime
Implementation-Version: 3.1.1E
Implementation-Vendor: Hunny Software, Inc.

Ich sehe nichts Ungewöhnliches in dieser JAR-Datei.

Ich vermute, dass das Problem möglicherweise ein fehlendes Abhängigkeitsproblem ist. Aber AFAIK jmime soll in sich geschlossen sein (JarAnalyzer hat nichts, aber ich bin mir nicht sicher, ob dies der Fall wäre, wenn ein Abhängigkeitsglas fehlt).

Hat jemand irgendwelche Ideen?

Kevin Sitze
quelle
Siehe auch stackoverflow.com/questions/15046764/… wenn es nicht möglich ist, Symbole aufzulösen, die Teil von Maven-Abhängigkeiten sind [für mich war es ein fehlendes M2_HOME]
Rogerdpack
1
2018.3.3. Immer noch der gleiche Fehler ...
Dieter

Antworten:

999

Zunächst sollten Sie versuchen File | Invalidate Caches, das IDEA-Systemverzeichnis zu löschen, wenn dies nicht hilft . Importieren Sie dann das Maven-Projekt erneut und prüfen Sie, ob es hilft.

In einigen seltsamen Fällen können kompilierte Klassen falsche Informationen melden und IDEA verwirren. Stellen Sie mit javap sicher, dass die Klassen aus diesem JAR korrekte Namen melden .

CrazyCoder
quelle
1
Ich habe Projektdateien und Verzeichnisse gelöscht, aber erst als der ungültige Cache und der Neustart das Problem behoben haben. Danke für den Tipp! Ich frage mich, ob es keine Möglichkeit gibt, dies automatisch zu tun. Sie würden so denken. Ich meine, ich habe das Projekt sogar komplett aus pom.xml reimportiert und es hat seine Caches immer noch nicht "ungültig gemacht".
Antony Stubbs
9
FWIW, diese Korrekturen haben bei mir nicht funktioniert. Ich habe ein Maven-Projekt, das von einem anderen Projekt abhängig ist. Builds funktionieren innerhalb und außerhalb von IDEA 10.5, aber einige der Symbole aus dem anderen Projekt sind im abhängigen Projekt rot markiert. Cache ungültig gemacht und neu gestartet. Kein Glück. Außerdem wurden IDEA-Dateien entfernt und das abhängige Projekt erneut importiert. Kein Glück.
Pastafarian
10
Danke für die Antwort. Es stellte sich schließlich heraus, dass ich IDEA anweisen musste, "mein Maven-Projekt mit Maven 3 zu importieren". Unter Einstellungen-> Maven-> Importieren. Entdeckt nach einem langen E-Mail-Austausch mit [email protected].
Pastafarian
1
Die Menüoption lautet jetzt "Datei | Caches ungültig machen / neu starten" (Android Studio 0.8.2, Linux).
CoatedMoose
19
Invalidate hat nicht funktioniert, egal wie oft ich es versucht habe. Ich habe den Ordner .idea gelöscht und das Projekt dann mit build.gradle erneut importiert. Es funktioniert jetzt.
HelpMatters
108

Der folgende Trick hat dieses Problem für mich behoben:

  • Klicken Sie mit der rechten Maustaste auf den Code-Editor
  • Bewegen Sie den Mauszeiger über Maven und erweitern Sie ihn
  • Klicken Sie auf Reimport

Meine Ideenversion ist 12.0.4

rshahriar
quelle
Wie mache ich das in IntelliJ für Mac OS?
Ankit Rustagi
@AnkitRustagi für Mac OS Klicken Sie mit der rechten Maustaste auf das Projektverzeichnis im Projektfenster. Maven -> Reimport. Sie können auch den Hotkey, Double Tap Shift oder Shift + Command + A verwenden und nach "Alle Maven-Projekte erneut importieren" suchen
Lakota Lefler
5
Rechtsklick ist ein Hinweis für mich. Anscheinend ist meine pom.xml nicht als Maven-Datei markiert, daher muss ich mit der rechten Maustaste klicken und als Maven markieren. Ich habe 'Maven-Projekte automatisch importieren' aktiviert und alle Pakete danach importiert.
Rasyadi
4
für 2017.1.x arbeitet daran, Maven-Projekte erneut zu importieren: View -> Tool Windows -> Maven ProjectsKlicken Sie dann auf das Symbol für die Zykluspfeile .
Vielinko
Das erneute Importieren des Maven-Moduls hat mir ebenfalls geholfen. Ich war überrascht, dass es nicht erneut importiert wird, da sich die Abhängigkeiten sowieso ändern ...
Rich
37

Keine der oben genannten Lösungen hat bei mir funktioniert. Sie haben die Datei main.iml manuell entfernt und plötzlich funktioniert.

cerisier
quelle
4
Großes Dankeschön! Dies war auch die einzige Lösung, die das Problem löste, das ich hatte. Was passierte war, dass mein Projekt umbenannt wurde und IntelliJ die alten .iml-Dateien unter .idea / modules irgendwie nicht gelöscht hat. Löschen Sie diese zusätzliche IML-Datei und erstellen Sie das Projekt neu. Das Problem wurde behoben.
Chen
Hat funktioniert! Großartig! Aber es wäre schön, wenn jemand erklären könnte, warum es funktioniert.
Hamza Belmellouki
1
Wo ist diese Datei? Ich habe die <Projektname> .idl gelöscht und jetzt ist die Projektstruktur weg !! Außerdem können die Einstellungen nicht geladen werden, da die IML-Datei nicht vorhanden ist
KansaiRobot
Funktioniert perfekt. Ich habe versucht, JDK zu ändern, Caches ungültig zu machen, Projekt erneut zu importieren, nichts hat funktioniert. Das Löschen von main.iml funktioniert.
rs_
31

Für Gradle-Benutzer:

Möglicherweise müssen Sie Ihr Projekt mit Ihrer build.gradleDatei synchronisieren .

Sie können dazu mit der rechten Maustaste auf Ihre Gradle-Datei im Projektfenster klicken, aber das schien nichts für mich zu tun (ich vermute einen Fehler in meiner Version). Sie werden wissen, ob dies passiert, weil dadurch keine IntelliJ-Aufgaben ausgelöst werden, auf die Sie warten werden. Öffnen Sie stattdessen den Bereich Gradle Tool und klicken Sie auf die Schaltfläche Synchronisieren (Aktualisieren). Dies funktionierte bei mir, wo das Ungültigmachen des Caches und das Neustarten nicht funktionierten.

Mein eigener Umstand: Ich habe mit Gradle ein Scala-Projekt verwendet und musste dies tun.

bbarker
quelle
Ich möchte nur als Randnotiz sagen, dass ich dies erneut tun musste, nachdem ich mein Build-System ein wenig überarbeitet hatte. Irgendwie hat IntelliJ einige Probleme mit meiner build.gradle-Datei entdeckt, die zuvor nicht aufgetaucht sind. Am Ende war es möglich, alles ziemlich schnell zum Laufen zu bringen.
Bbarker
7
Gradle Tool-Bereich ist bei: View > Tool Windows > Gradle
UTF_or_Death
@bbarker - Ich habe IntelliJ gerade auf die neueste Version am Sonntag, den 6. August 2017 aktualisiert. Das Problem, das Sie erwähnen, wenn Sie mit der rechten Maustaste auf die Datei build.gradle im Bereich Projektdateien klicken und nichts passiert, ist weiterhin vorhanden. Zum Glück hat Ihr Tipp, die Schaltfläche Aktualisieren im Gradle-Tool-Fenster (Ansicht -> Tool-Fenster -> Gradle) zu verwenden, hervorragend funktioniert.
Robert Oschler
Hinweis zu den Problemen mit build.gradle: Manchmal findet IntelliJ nicht vorhandene Probleme, wenn Sie keine Ausführungskonfigurationen haben. Ich hatte einmal etwas mavenCentral() could not be resolvedSeltsames, bis ich die jUnit-Konfigurationen wieder hinzufügte (ich hatte ein ganzes Projekt nach Gradle portiert, indem ich ein neues Gradle-Projekt erstellt und dann alle Quelldateien kopiert hatte).
Egor Hans
28

Dies wurde in einer anderen Antwort auf dieselbe Frage hier erwähnt , aber dies allein behebt dies für mich. Ich mache alle meine Builds in einem separaten Terminal außerhalb von IntelliJ. Für den Cache müssen daher die richtigen Berechtigungen festgelegt sein, damit die IntelliJ-App sie lesen kann.

Führen Sie es aus dem Stammordner des Projekts aus.

$ mvn -U idea:idea
Tom
quelle
Ich denke, das könnte helfen ... aber wenn man es unglücklicherweise ausführt, tritt eine Verbindungsüberschreitung auf. konnte keine Verbindung zum Repo herstellen :(
KansaiRobot
Du hast meinen (zweiten halben) Tag gerettet!
Gavriel,
19

Ein zusätzlicher Schritt, wenn ich Datei -> Caches ungültig machen und die IDE neu gestartet habe, öffne ein Projekt. Oben rechts wurde eine Toastbox angezeigt, in der ich gefragt wurde, ob der automatische Import aktiviert werden soll. Dadurch wurde das Problem behoben.

Matthew Chen
quelle
14

Noch etwas zu überprüfen: Stellen Sie sicher, dass Abhängigkeiten nicht dupliziert werden. In meinem Fall stellte ich fest, dass ein Modul, das dieses Verhalten aufweist, wie folgt falsch konfiguriert wurde: Es war von einem anderen Modul abhängig und von einem von diesem anderen Modul erstellten JAR. Dies bedeutete für jedes Symbol, auf das doppelt verwiesen wurde, und war mehrdeutig.

Landon Kuhn
quelle
11

Inkonsistente / doppelte Modulnamen in der Projektstruktur haben dieses Problem für mich verursacht.

  1. Gehe zu File -> Project Strucutre -> Modules
  2. Klicken Sie auf Module mit roter Unterstreichung
  3. Gehe zur Registerkarte "Abhängigkeiten"
  4. Stellen Sie sicher, dass die roten Abhängigkeiten tatsächlich in der Abhängigkeitsliste vorhanden sind. Wenn nicht, benennen Sie sie um, damit sie mit den vorhandenen Abhängigkeitsnamen übereinstimmen

Dies kann passieren, wenn IntelliJ nicht ordnungsgemäß heruntergefahren wird und daher umbenannte Modulnamen nicht ordnungsgemäß gespeichert werden können.

Babken Vardanyan
quelle
1
Schließlich. Ich hatte aus irgendeinem Grund zwei Module aufgelistet, "main" und meinen Projektnamen. Main wurde entfernt und die Fehler gingen weg.
Bobby
9

Wurde ein Fix veröffentlicht? Das anscheinend betroffene Problem betraf Version 11/12 aufgrund einer "Compiler-Überarbeitung" im Jahr 2013. Mit Diskussion zu verwandten Problemen in Jira bis Ende 2014. http://youtrack.jetbrains.com/issue/IDEA-98425

Auch auf Jira wurde IDEA-98425 als fest, aber nicht verifiziert markiert (auf v12.0.3). Keiner der folgenden Behelfslösung geholfen Entschlossenheit dieses „Kann nicht auflösen Symbol“ Problem mit Version 13.1.1 unter Windows

ein. Löschen Sie den Ordner .IdealIC13 (dann Datei \ Caches ungültig machen / neu starten)

b. Im Fenster " Maven-Projekte"

b.1 mvn -U Idee: Idee -〉 Wenn Sie dieses Maven-Ziel ausführen, müssen Sie die Abhängigkeiten neu laden. Dies funktioniert vorab, aber seit dem letzten FRI ist die Ausführung dieses Maven-Ziels fehlgeschlagen, als versucht wurde, das Projekt neu zu kompilieren. (Natürlich schlägt dies als "Symbole können nicht aufgelöst werden" fehl. mvn -version - zeigt die Maven-Version, auf die 3.2.5 verwiesen wird und die funktioniert

b.2 Klicken Sie einfach mit der rechten Maustaste auf Projekt und importieren Sie erneut

b.3 Datei \ Caches ungültig machen / neu starten

c. Versucht, diese Einstellung zu aktivieren und zu deaktivieren: Datei -> Einstellungen -> Maven -> Importieren -> "Projekt mit maven3 importieren"

d. Einstellungen \ Maven \ Multiproject Build Fail Policy = Fehler am Ende (anstelle von Standard)

Nichts funktioniert. Was passiert mit der IntelliJ-Unterstützung für Maven?

https://youtrack.jetbrains.com/issue/IDEA-99302

Im Versionsverlauf von JetBeans finden Sie https://www.jetbrains.com/company/history.jsp

IntelliJ v14 NOV 2014

IntelliJ v13 DEZ 2013

Ich würde davon ausgehen, dass v12 behoben (obwohl nicht verifiziert ) in nachfolgenden Releases enthalten sein würde. Hat jemand ähnliche Probleme mit welcher IntelliJ-Version? Bitte teilen Sie Ihre Erfahrungen. Die Unterstützung von IntelliJ Maven scheint unterbrochen zu sein.


quelle
Das Problem verschwand ... nachdem ich das Projekt "Öffnen" anstelle des Projekts "Importieren" ... verdammt seltsam.
Das hat bei mir funktioniert! :) Ich habe einen Arbeitstag verloren, aber es hat funktioniert. Ich frage mich, was der Unterschied zwischen offen und Import ist
Arran
5

Meine Projektstruktur:

src -> main -> scala -> mypackages

Was hat funktioniert:

Klicken Sie mit der rechten Maustaste auf den scalaOrdner und klicken Sie auf "Verzeichnis als Quellenstamm markieren".

Axiom
quelle
4

Keine der anderen Antworten hat für mich funktioniert. Meine Importe wurden nicht aufgelöst, da IntelliJ auf eine falsche .m2-Datei zeigte.

IntelliJ-Version: IntelliJ Idea 2018.1.5

Mein Speicherort für das .m2- Verzeichnis wurde auf den falschen Pfad verwiesen. Alles, was ich getan habe, um das Problem zu beheben, war, IntelliJ erneut auf das richtige .m2-Verzeichnis zu verweisen und es zu aktualisieren.

Gehen Sie zunächst zu: Datei-> Einstellungen-> Erstellen, Ausführen, Bereitstellen-> Build-Tools-> Maven

Ich musste die Benutzereinstellungsdatei: und das lokale Repository: an den richtigen Speicherort meines .m2-Verzeichnisses ändern.

Gehen Sie danach zu: Datei-> Einstellungen-> Erstellen, Ausführen, Bereitstellen-> Build-Tools-> Maven-> Repositorys

und klicken Sie auf die Schaltfläche Aktualisieren.

Tim
quelle
3

Für eine andere Alternative.

Ich habe dieses Problem auch bekommen, als ich JDK7_07 verwendet habe. Ich habe hier alle Antworten ausprobiert (außer das Löschen des IDEA-Systemverzeichnisses). Aber ich habe immer noch das Problem. Also, was ich getan habe, ist:

Installieren Sie das neueste JDK (es war JDK7_45) und setzen Sie das JDK des Intellij auf das neue, und es funktioniert.

ismailsunni
quelle
Hatte das Problem mit Intellij IDEA 2019.3 und dem mitgelieferten JDK 11.0.3 und löste es durch manuelles Installieren von JDK 11.0.4, siehe hier: stackoverflow.com/questions/61338200/…
Benjamin Zach
3

Ich hatte gerade dieses Problem und es würde einfach nicht verschwinden. Ich habe schließlich das IntelliJ-Konfigurationsverzeichnis gelöscht ~und mein IntelliJ-Projekt von Grund auf neu erstellt. (Dies dauerte am Ende nur etwa 15 Minuten, verglichen mit einer Stunde, in der versucht wurde, Probleme mit zwischengespeicherten Dateien usw. zu lösen.)

Beachten Sie, dass ich vermute, dass das anfängliche Problem durch etwas wie javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html(NB: Ab 2018 ist dieser Link tot, aber archive.org hat eine Kopie der Seite von ungefähr, als diese Antwort zum ersten Mal geschrieben wurde) oder a verursacht wurde Speicherplatz- / Speicherproblem, das zum Absturz von Java führt. IntelliJ schien nur korrumpiert zu werden.

Mozboz
quelle
3

Wenn es sich bei Ihrem Maven-Projekt um ein Projekt mit mehreren Modulen handelt, überprüfen Sie, ob einige der Module von Intellij ignoriert werden.

  1. Klicken Sie auf Ansicht -> Werkzeugfenster -> Maven-Projekte und prüfen Sie, ob einige Module ignoriert werden (ignorierte Module sind grau, z. B. gs-multi-modulein der folgenden Abbildung).

Geben Sie hier die Bildbeschreibung ein

  1. Klicken Sie mit der rechten Maustaste auf das ignorierte Modul und wählen Sie Unignore Projects.

Geben Sie hier die Bildbeschreibung ein

Warten Sie dann, bis Intellij die Indizierung abgeschlossen hat. Danach funktioniert es.

Searene
quelle
2

Nach dem Ungültigmachen meines Caches und dem Neustart; und als ich bestätigte, dass meine Maven-Einstellungen in Ordnung waren, wurde immer noch "Symbol kann nicht aufgelöst werden" für ein Modul angezeigt, das ich definitiv als Abhängigkeit festgelegt hatte. Es stellte sich heraus, dass ich den falschen Bereich eingestellt hatte.

Sie können dies überprüfen, indem Sie mit der rechten Maustaste auf Ihr Modul klicken und Moduleinstellungen öffnen auswählen. Klicken Sie auf die Registerkarte Abhängigkeit, und überprüfen Sie, ob der Bereich für Ihre nicht auflösbare Abhängigkeit auf Kompilieren festgelegt ist.

user3565334
quelle
2

Das erneute Importieren des Projekts hat bei mir funktioniert. Klicken Sie mit der rechten Maustaste auf Projekt -> Maven -> Neu importieren

Wenn ich Datei -> Caches ungültig machen und die IDE neu gestartet habe, öffne ein Projekt. Es zeigte oben rechts einen Dialog "Maven-Änderungen erkannt" und gab eine Option zum Importieren und Aktivieren des automatischen Imports. Auch nach dem Import des Projekts hier hatte ich das gleiche Problem. Der obige Schritt löste das Problem.

Sandeep
quelle
2

In meinem Fall versuche ich, ein Spring-Boot-Projekt von IntellijIdea aus zu öffnen. Es tritt das gleiche Problem auf, dass nicht alle Spring-bezogenen Dateien importiert werden können.

Dann habe ich:

Datei -> Projekt schließen -> Projekt importieren -> Aus externem Modell importieren -> Gradle auswählen -> Weiter -> Projekt aus Dateispeicherort auswählen -> Fertig stellen

Jetzt funktioniert alles wie erwartet.

Ich habe hier viele Antworten gesehen, aber ich habe endlich diese Lösung gefunden. Es kann für jemanden wie mich verwendet werden.

Shylendra Madda
quelle
1

Ja, es hört sich so an, als müssten Sie Bibliotheken erstellen, die die benötigten JARs enthalten, und diese als Abhängigkeit in Ihr Modul einfügen.

Duffymo
quelle
1

In meinem Fall wird nur buildDir entfernt. In diesem Fall File | Invalidate Cachesfunktioniert nicht.

Wenn ich es Build | Make Projectvorher mache File | Invalidate Caches, funktioniert alles gut.

Chiguri
quelle
es warf einen Fehler: Java Fehler Release Vestion 5 wird nicht unterstützt
KansaiRobot
@KansaiRobot Klingt so, als hätten Sie Ihr Projekt für die Verwendung von Java 5 konfiguriert. Die meisten Bibliotheken benötigen heutzutage mindestens Java 8, und es gibt nicht viel Grund, etwas Niedrigeres zu verwenden (im JDK sind viele Dinge passiert, sowohl hinsichtlich der neuen Funktionen als auch der Leistung). Versuchen Sie es erneut mit Java 8 oder höher.
Egor Hans
1
  1. Einstellungen öffnen"
  2. Suche nach "Maven"
  3. Klicken Sie unter "Maven" auf "Ignorierte Dateien".
  4. Deaktivieren Sie die Option pom.xml, die die fehlenden Abhängigkeiten enthält
  5. OK klicken"
  6. Klicken Sie auf Datei -> Caches ungültig machen / neu starten ...
  7. Klicken Sie auf "Ungültig machen und neu starten".
Jasper Citi
quelle
Es gibt keine pom.xml auf dem Bildschirm in 4,
KansaiRobot
1

Keine der oben genannten Lösungen hat es für mich gelöst. Ich hatte das gleiche Problem, bei dem der Code gut kompiliert wurde, aber IntelliJ zeigte, dass der Import nicht gefunden werden konnte. Obwohl IntelliJ den Import von der Code-Vervollständigung an erster Stelle vorgeschlagen hat.

Meine Lösung bestand darin, alles in das Standardpaket zu verschieben, das Paket zu löschen com.foo.bar, es dann erneut zu erstellen und alles zurück zu verschieben.

jmhage
quelle
1

Lösungsvorschläge funktionierten nicht. Ich musste unignore mehrere Projekte , indem mit der rechten Maustaste auf das Projekt pom => maven => unignore klickte.

Dann nach einem

mvn clean install -T 6 -DskipTests

In der Konsole war IntelliJ wieder glücklich. Keine Ahnung, wie die Projekte ignoriert wurden ...

Ronald Teune
quelle
1

mvn idea:ideaarbeitete für mich. Fand es hier . Verbrachte mehr als eine Stunde, hoffe es hilft jemandem

Nilesh
quelle
1

Entfernen Sie die: iml-Datei, die sich in Java- und Testordnern im Projekt befindet, und machen Sie sie ungültig und starten Sie sie neu.

Es wird gefragt, ob ich die Projekte entfernen kann. Setzen Sie Ja. Der Fehler geht aus.

Harriesh Gomahan
quelle
1

Was für mich funktionierte, war "Als Verzeichnisquellstamm markieren" das Verzeichnis, in dem sich die rot markierte Klasse befand, danach verschwand die rote Markierung. Scheint, dass es aus irgendeinem Grund nicht markiert war.

Dunkler Engel
quelle
1

Für Gradle-Projekte:

  1. Beenden Sie IntelliJ IDEA
  2. Löschen Sie das <problematic-project-root>/.ideaVerzeichnis
  3. Löschen Sie das <problematic-project-root>/.gradleVerzeichnis
  4. Löschen Sie alle .imlDateien in<problematic-project-root>
    • Windows- Eingabeaufforderung :DEL /S /Q *.iml
    • Linux: find . | grep -e .iml$ | xargs rm
  5. Importieren Sie das Projekt mit Gradle erneut in IntelliJ IDEA
Eric
quelle
0

Wenn Sie ein Maven-Projekt haben, gehen Sie einfach zu Einstellungen -> Build-Tools -> Maven -> Importieren. Aktivieren Sie das Kontrollkästchen "Maven-Projekt automatisch importieren". wird das Problem lösen.

Johnny Martin
quelle
0

Ungültige Caches funktionierten für mich, aber nach dem Ausführen hatte die Anwendung den gleichen Fehler.

Also habe ich versucht ( Intellij ):

1 - Menüleiste - Refactor | Build | Führen Sie | aus Extras - Klicken Sie auf Erstellen und dann auf Projekt neu erstellen

2 - MVN sauber

3 - Klicken Sie mit der rechten Maustaste auf Projekt> Maven> Quellen generieren und Ordner aktualisieren

Hoffe das funktioniert bei dir.

Vielen Dank

Djalas
quelle
0

Oder vielleicht ist die von Ihnen importierte Datei zu groß. Dies ist mein Fall, wenn ich die Intellij-Eigenschaft: iead.max.intellisen.filesize (Pfad ist $ {idea dir} /bin/idea.properties) auf einen größeren Wert ändere 25000 und starten Sie die IDE neu, das Problem verschwand. Hoffe das hilft.

Chaojun Zhong
quelle