IntelliJ Inspektion gibt "Cannot resolve symbol" aber noch kompiliert den code
Plattform: IntelliJ Community Edition 10.0.3
SDK: jdk1.6.0_21
OS: Windows 7
Also ich habe eine seltsame situation mit IntelliJ, hat mich völlig ratlos. Ich setup aus einem Maven-Projekt und fügen Sie log4j als Abhängigkeit in die pom.xml Datei. Die IDEE, die Prüfungen gut laufen und meine unit-tests alle kompilieren und ausführen.
Fügte ich hunnysoft ist jmime Bibliothek auf meinem lokalen maven-repository mit Hilfe der mvn install:install-Datei wie folgt.
mvn install:install-file -Dfile=jmime.jar -DgroupId=jmime \
-DartifactId=jmime -Dversion=3.1.1e -Dpackaging=jar
Maven installiert die jar-Datei einfach in Ordnung in meinem lokalen repository.
Dann ging ich in IntelliJ Einstellungen => Maven => Repository-Dienste und Aktualisiert mein lokales repository (so, dass IntelliJ würde Neuindizierung der repository-Inhalte).
Schließlich, fügte ich folgende Abhängigkeit in meiner pom.xml Datei (nur über das log4j-dependency).
<dependency>
<groupId>jmime</groupId>
<artifactId>jmime</artifactId>
<version>3.1.1e</version>
</dependency>
Ich jetzt eine neue Klasse erstellen, 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 für die Verrücktheit. IntelliJ ist die Absicht des Mechanismus nimmt und erkennt den Logger import in der maven-pom-Datei auch in Ordnung. Allerdings, für alle die hunnysoft-Importe meldet: "Cannot resolve symbol 'ByteString/Feld/FieldBody'", ABER Build => Compile 'StackOverflowQuestion.java' kompiliert alles einwandfrei und das Gerät testen, erstellte ich für diese Klasse gut läuft (obwohl die Absichten daneben der Aufruf von create() als problem-Bereich zu).
Also irgendwo, irgendwie IntelliJ ist die Nichtbeachtung der jmime.jar Datei für die Absicht subsystem. Ich bin verwirrt, weil Sie die log4j-dependency funktioniert einwandfrei und alles kompiliert und läuft einwandfrei. F12 ("Gehe Zu Deklaration") arbeitet auf dem Logger importieren, aber bricht auf allen jmime Einfuhren.
Oh, eine andere Sache, wenn ich gehen, um die 'Pakete' Ansicht in der "Projects" - Fenster den "com.hunnysoft.jmime" Paket angezeigt und ich kann sehen, dass ALLE Klassen, die ich importiert in das code-snippet oben unter "Bibliotheken". Das entfernen der oben genannten Abhängigkeit von der pom.xml Datei bewirkt, dass dieses Paket, um zu verschwinden und die Kompilierung bricht.
Scheint es, dass die Inspektion der classpath ist gebrochen, aber es tut nicht scheinen, um eine Einstellung für das überall in den Einstellungen => Absichten | Compiler-Bereiche (nicht, dass ich erwartet, dass solche Einstellungen, ich glaube, die IDEE sollte schon wissen, den richtigen classpath, basierend auf der pom-Datei und JDK).
Als eine endgültige experiment, das ich erstellt eine neue standard-J2SE-Anwendung-Projekt (ohne maven) und das Hinzugefügt jmime.jar Datei direkt dem Projekt als einer der Bibliotheken. Ich starte in genau die gleichen Probleme wie oben beschrieben in dieses neue Projekt.
Hier ist das MANIFEST.MF aus dem 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.
Sehe ich nichts ungewöhnliches in dieser jar-Datei.
Meine beste Vermutung ist, dass vielleicht das problem könnte eine fehlende Abhängigkeit Problem. Aber AFAIK jmime soll selbst enthalten (JarAnalyzer nicht mit etwas kommen, aber ich bin nicht sicher, es würde, wenn eine Abhängigkeit Glas fehlt).
Also, jemand irgendwelche Ideen?
2018.3.3. Immer noch der gleiche Fehler...
InformationsquelleAutor Kevin Sitze | 2011-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst sollten Sie versuchen
File | Invalidate Caches
und wenn es nicht hilft, löschen Sie IDEE-system-Verzeichnis. Dann re-importieren des Maven-Projekt und sehen, ob es hilft.In einigen seltsamen Fällen kompilierten Klassen kann berichten von falschen Informationen und verwirren IDEE. Stellen Sie sicher, dass die Klassen aus diesem jar-Bericht korrekten Namen verwenden javap.
Danke für die Antwort. Es stellte sich heraus zu werden, endlich, dass musste ich sagen, die IDEE zu "importieren" mein Maven-Projekt mit Maven 3". Unter Einstellungen->Maven->Importieren. Erst nach einer langen E-Mail-Austausch mit [email protected].
[email protected] ist mir =)
Ich weiß nicht, wie viele Stunden meines Lebens habe ich verloren, aber es sind eine Menge - auf der flip-side, es ist besser als mit Eclipse.
ungültig machen hat nicht funktioniert, egal wie oft ich es versucht habe. Ich löschte die .Idee-Ordner und dann re-importiert, das Projekt mit aufzubauen.gradle. Es funktioniert jetzt.
InformationsquelleAutor CrazyCoder
Den folgenden trick gelöst dieses Problem für mich:
Meine Idee, die version 12.0.4
für Mac OS Rechtsklick Projekt-Verzeichnis unter "Projekt" - panel. Maven -> Importieren. Sie können auch den hotkey -, Doppel-Tippen Sie auf die Umschalttaste oder Shift + Befehl + A, und suchen Sie "importieren Sie alle maven-Projekte"
Recht-klicken Sie ein Tipp für mich. Anscheinend ist mein pom.xml nicht markiert als maven-Datei, also muss ich mit der rechten Maustaste und markiert ist als Maven. Ich habe aktiviert "Import Maven projects "automatisch" und alle Pakete importiert nach.
für 2017.1.x ist die Arbeit importieren von maven Projekten:
View -> Tool Windows -> Maven Projects
, dann klicken Sie auf Zyklus-Pfeile-Symbol.Dies löste das Problem.
InformationsquelleAutor rshahriar
Für Gradle-Benutzer:
Können Sie brauchen, um synchronisieren Sie Ihr Projekt mit Ihrem
build.gradle
- Datei.Können Sie mit der rechten Maustaste auf Ihren gradle-Datei unter dem Bereich "Projekt", um dies zu tun, aber, die nicht scheinen, etwas zu tun für mich (ich vermute, ein bug in meiner version). Sie werden wissen, wenn dies geschieht, weil es nicht " kick off jede IntelliJ Aufgaben, dass Sie warten werden, auf. Stattdessen öffnen Sie die Gradle-Tool-Bereich, dann klicken Sie auf synchronisieren (aktualisieren) - Schaltfläche. Dieser arbeitete für mich, wo invalidieren des Caches und Neustart nicht.
Mein eigenes Umstand: ich war mit einem Scala Projekt mit Gradle und zu tun hatte.
Gradle-Werkzeug-Fensterbereich an:
View > Tool Windows > Gradle
Sie gewinnen das internet, und ein cookie (mit Sahne, Streuseln und einer Kirsche). Diese wurde driving me up the wall. Von nun an werde ich Sie einfach erstellen Sie ein makro, das dies tut, bevor jede einzelne Zeit.
Ich habe gerade aktualisiert, IntelliJ, um die neueste version vom Sonntag, 6. August 2017. Das problem, das Sie erwähnen, wo rechts-Klick auf das bauen.gradle-Datei im Projekt-files und nichts passiert, immer noch existiert. Zum Glück, dein Tipp verwenden Sie die Schaltfläche Aktualisieren in der Gradle-Tool-Fenster ("Ansicht" - > Tool Windows -> Gradle) hat Super funktioniert.
InformationsquelleAutor bbarker
Keiner der oben genannten Lösungen bei mir funktioniert. Was hat war das entfernen der main.iml-Datei manuell und es plötzlich funktionierte.
Großes danke!!! Dies war auch die einzige Lösung, die das Problem gelöst das ich hatte. Was geschah, war mein Projekt wurde umbenannt und IntelliJ irgendwie nicht klar, die alte .iml-Dateien unter .Idee/Module. Löschen Sie diese extra .iml-Datei und erstellen Sie das Projekt neu wurde das Problem behoben.
Ich habe keine Ahnung, was ich soeben gelöscht, aber das ist mein problem gelöst. Danke!
InformationsquelleAutor cerisier
Einen zusätzlichen Schritt, wenn ich auf Datei -> Invalidate Caches und Neustart der IDE öffnen Sie ein Projekt. Es tauchte ein toastbox auf der rechten oberen Seite und fragt mich, ob so aktivieren Sie auto-import und hat das problem gelöst.
InformationsquelleAutor Matthew Chen
Dieser wurde erwähnt in einer anderen Antwort auf die gleiche Frage hier, aber das allein behebt das für mich. Ich mache alle meine builds in einem separaten terminal, außerhalb von IntelliJ. Also der cache ist, müssen über die entsprechenden Berechtigungen für die IntelliJ-app zu Lesen.
Führen Sie es von der Projekt-root-Ordner.
InformationsquelleAutor Tom
Eine andere Sache zu prüfen: stellen Sie sicher, dass die Abhängigkeiten nicht dupliziert werden. In meinem Fall habe ich festgestellt, dass ein Modul auf dieses Verhalten war falsch konfiguriert wie folgt: es hatte eine Abhängigkeit zu einem anderen Modul, und es hatte eine Abhängigkeit auf ein Glas produziert, das andere Modul. Dies bedeutete für jedes symbol verwiesen wird dupliziert und unklar ist.
InformationsquelleAutor Landon Kuhn
Inkonsistent/doppelte Modul-Namen in der Struktur des Projektes verursacht wurde dieses Problem für mich.
File -> Project Strucutre -> Modules
Dies kann passieren, wenn IntelliJ nicht ordnungsgemäß heruntergefahren und kann so nicht richtig speichern umbenannt Modul-Namen.
das war mein problem auch. Vielen Dank für das teilen!
InformationsquelleAutor Babken Vardanyan
Hat eine Feste veröffentlicht worden? Erscheint die Ausgabe, die ursprünglich betroffenen v11/12 durch einen "Compiler " überholung" wieder in 2013. Mit der Diskussion über Verwandte Themen im Jira-bis Ende 2014.
http://youtrack.jetbrains.com/issue/IDEA-98425
Auch auf Jira IDEE-98425 war geprägt festen aber ungeprüfte (auf v12.0.3). Keiner der folgenden zu arbeiten, um geholfen beheben dieses "Unable to Resolve Symbol" Problem mit Version 13.1.1 auf Windows
ein. Löschen .IdealIC13 Ordner (Dann die Datei \ Invalidate Caches /neu Starten)
b. Von Maven-Projekten Fenster,
b.1 mvn -U Idee:Idee –〉Ausführung dieses maven-Ziel angenommen, um neu zu laden der Abhängigkeiten. Dies funktioniert prev, aber seit letzten FREITAG, Ausführung des maven-Ziel fehlgeschlagen, da es versucht, das Projekt neu kompilieren (natürlich ist es nicht wie "Unable to resolve Symbol", das ist, was ich bin versucht zu reparieren, indem Sie diesen Befehl ausführen in den ersten Platz) mvn -version — zeigt die maven version 3.2.5 verwiesen und, dass es funktioniert
b.2 Einfach mit der rechten klicken Sie auf Projekt, und Reimport
b.3 Datei \ Invalidate Caches /Neustart
c. Habe versucht beide Aktivieren & Deaktivieren Sie diese Einstellung: Datei -> Einstellungen -> Maven -> Importieren -> "Verwenden, maven3 zu importieren Projekt"
d. Einstellungen \ Maven \ Multiproject bauen Politik scheitern = Fail am Ende (anstelle von Standard)
Nichts funktioniert. Was ist geschehen, um IntelliJ Unterstützung auf Maven.
https://youtrack.jetbrains.com/issue/IDEA-99302
Vom JetBeans release-Geschichte, https://www.jetbrains.com/company/history.jsp
IntelliJ v14 NOV 2014
IntelliJ v13 DEC 2013
Ich würde davon ausgehen, v12 behoben (obwohl ungeprüfte) würde aufgenommen werden in nachfolgenden Versionen. Alle haben ähnliche Probleme mit der IntelliJ-version? Bitte teilen Sie Ihre Erfahrungen. IntelliJ maven-Unterstützung scheint gebrochen.
Dieser arbeitete für mich! 🙂 Verloren am Tag zu arbeiten, aber es funktionierte. Ich Frage mich, was ist der Unterschied zwischen öffnen und importieren
InformationsquelleAutor
Mein Projekt Struktur:
Was gearbeitet:
Klicken Sie rechts auf die
scala
Ordner, und klicken Sie auf "Mark Directory als Quellen Root".InformationsquelleAutor axiom
Keiner der anderen Antworten für mich gearbeitet. Meine Importe wurden nicht behoben, weil IntelliJ wies auf falsch .m2-Datei.
IntelliJ-Version: IntelliJ Idea 2018.1.5
Mein Standort für die .m2 Verzeichnis, auf die verwiesen wurde, der falsche Weg. Alles, was ich Tat, um es zu beheben war, re-Punkt IntelliJ auf der rechten Seite .m2 Verzeichnis und aktualisieren Sie es.
Zuerst gehen Sie zu: Datei->Einstellungen->Bauen, Ausführung, Bereitstellung,->Build-Tools->Maven
Musste ich die Benutzer-Einstellungen-Datei: und die Lokalen repository: an die richtige Stelle meine .m2 Verzeichnis.
Nach diesem gehen Sie zu: Datei->Einstellungen->Bauen, Ausführung, Bereitstellung,->Build-Tools->Maven->Repositories
und klicken Sie auf die Schaltfläche "Aktualisieren".
InformationsquelleAutor Tim
Ich hatte gerade dieses Problem und es würde einfach nicht Weg. Ich schließlich löschte die IntelliJ config-Verzeichnis in
~
wieder aufgebaut und meine IntelliJ-Projekt von Grund auf neu. (Dies dauerte nur etwa 15 Minuten am Ende, im Vergleich zu verbringen eine Stunde versucht, herauszufinden, Probleme mit Cache-Dateien, etc.)Beachten Sie, dass meine Vermutung ist, dass das erste problem wurde verursacht durch etwas, das wie
javathings.blogspot.com/2009/11/too-many-open-files-in-intellij-idea.html
(NB: ab 2018, dass link tot ist, aber archive.org hat eine Kopie der Seite aus, um bei dieser Antwort wurde zuerst geschrieben -ed.) oder einen Speicherplatz/Arbeitsspeicher Problem, dass Java zum Absturz zu bringen. IntelliJ schien nur beschädigt.InformationsquelleAutor mozboz
Andere alternative.
Ich habe dieses problem auch, wenn ich JDK7_07. Ich habe versucht, alle Antworten hier (außer löschen-IDEE-System-Verzeichnis). Aber, ich habe immer noch das problem. Also, was ich Tat, es ist:
Installieren neueste JDK (es war JDK7_45), und setzen die Intellij - JDK auf die neue, und es funktioniert.
InformationsquelleAutor ismailsunni
Nach der Aufhebung meinen cache und Neustart; und die Bestätigung meiner maven-Einstellungen waren okay, ich war immer noch zu sehen "Cannot resolve symbol" für ein Modul, ich hatte definitiv festgelegt, wie eine Abhängigkeit. Stellt sich heraus, ich hatte es auf den falschen Bereich.
Können Sie überprüfen, indem Sie einen Rechtsklick auf das Modul und Auswahl von Modul Öffnen Einstellungen. Klicken Sie auf die Registerkarte Abhängigkeiten und stellen Sie sicher, dass der Bereich für die un-auflösbar Abhängigkeit gesetzt zu Kompilieren.
InformationsquelleAutor user3565334
Re-importieren Sie das Projekt für mich gearbeitet.
Rechtsklick auf Projekt -> Maven ->Importieren
wenn ich auf Datei -> Invalidate Caches und Neustart der IDE öffnen Sie ein Projekt. Es zeigte sich ein Dialog oben rechts "Maven änderungen erkannt" und gab eine option zum importieren und aktivieren Sie die auto-import. Auch nach dem Import das Projekt hier, ich hatte das gleiche Problem. Der obige Schritt das problem gelöst.
InformationsquelleAutor Sandeep
Manchmal, ich öffnen Sie einfach die Projekt-Struktur, und klicken Sie auf Projekt, dann wählen Sie eine SDK-version.
InformationsquelleAutor Arthur Wu
In meinem Fall, ich bin versuchen zu öffnen, eine spring-boot-Projekt von IntellijIdea habe das gleiche Problem wie unable to import der Frühling zugehörigen Dateien.
Dann habe ich:
Nun alles funktioniert wie erwartet, in Ordnung.
Ich habe gesehen, viele Antworten hier, aber ich fand schließlich diese Lösung. Es kann für jemanden wie mich.
InformationsquelleAutor Shylendra Madda
Wenn Ihr maven-Projekt ist ein multi-Modul-Projekt, überprüfen Sie, ob einige der Module werden ignoriert, die von intellij.
gs-multi-module
im folgenden Bild).Unignore Projects
.Dann warten intellij zu beenden, die Indizierung, nach denen es funktioniert.
InformationsquelleAutor Searene
Ja, klingt wie Sie haben, um Bibliotheken erstellen, die mit den Gläsern, die Sie benötigen und fügen Sie Sie als Abhängigkeit in dein Modul.
InformationsquelleAutor duffymo
Für Intellij Idea Benutzer diese Befehle, bevor Sie selbst importieren Projekt helfen könnte :
./gradlew build
./gradlew idea
InformationsquelleAutor Ivan Aracki
In meinem Fall, nur buildDir entfernt.
In diesem Fall
File | Invalidate Caches
funktioniert nicht.Wenn ich
Build | Make Project
vorFile | Invalidate Caches
funktioniert alles einwandfrei.InformationsquelleAutor chiguri
InformationsquelleAutor Jasper Citi
Keiner der oben beschriebenen Lösungen, gelöst für mich. Ich hatte das gleiche Problem, wo der code kompiliert einwandfrei, aber IntelliJ zeigte, dass es nicht finden konnten, importieren. Obwohl IntelliJ schlug der import in Erster Linie aus der code-Vervollständigung.
Meine Lösung war, alles in der Standard-Paket, löschen Sie die
com.foo.bar
Paket, dann erstellen Sie es erneut, und bewegen Sie alles wieder zurück.InformationsquelleAutor jmhage
Vorgeschlagenen Lösungen haben nicht funktioniert. Ich musste auschalten mehrere Projekte, die durch rechts-Klick auf das pom => maven => auschalten Projekt.
Dann nach einer
in der Konsole, IntelliJ war wieder glücklich. Keine Ahnung, wie die Projekte wurden ignoriert...
InformationsquelleAutor Ronald Teune
Entfernen :iml-Datei, die in java-und test-Ordner innerhalb des Projekt-und
ungültig machen und neu starten .
Wird es Fragen kann ich entfernen Sie die Projekte . Setzen, Ja. Der Fehler geht Weg.
InformationsquelleAutor Harriesh Gomahan
manchmal, wenn Sie erstellen-Paket wie com.mydomain.etwas, das die Verzeichnis-Struktur nicht erstellt und Sie sind Links mit einem einzigen Ordner benannt
"com.mydomain.etwas" in diesem Fall erstellen Sie die Verzeichnisstruktur, wie
InformationsquelleAutor test0101
Für Gradle-Projekte:
<problematic-project-root>/.idea
Verzeichnis<problematic-project-root>/.gradle
Verzeichnis.iml
Dateien in<problematic-project-root>
DEL /S /Q *.iml
find . | grep -e .iml$ | xargs rm
InformationsquelleAutor Eric
ob maven-Projekt, dann gehen Sie einfach zu Einstellungen ->build-tools - >maven ->importieren.
überprüfen Sie die checkbox "import maven project automatisch".
wird das problem zu lösen.
InformationsquelleAutor Johnny Martin
Invalidate Caches, die für mich gearbeitet, aber nach dem ausführen der Anwendung hatte den gleichen Fehler.
Also habe ich versucht (Intellij):
1 - Menüleiste: Überarbeiten | Bauen | Run | Tools
- klicken Sie auf Bauen dann Projekt neu
2 - MVN clean
3 - Rechtsklick auf Projekt - > Maven > Erstellung von Quellen-und Update-Ordner
Hoffe, das funktioniert für Sie.
Dank
InformationsquelleAutor Djalas
Oder vielleicht die Datei, die Sie importieren, ist zu groß.das ist mein Fall,wenn ich das Intellij-Eigenschaft: iead.max.intellisen.filesize (Pfad ${Idee-dir}/bin/idea.Eigenschaften) auf einen größeren Wert wie 25000, und die IDE neu gestartet,das problem verschwunden. Hoffe, das hilft.
InformationsquelleAutor Chaojun Zhong