Intellij Nie można rozpoznać symbolu podczas importu

128

Ten problem występuje sporadycznie w różnych bibliotekach i różnych projektach. Podczas próby zaimportowania biblioteki pakiet zostanie rozpoznany, ale nazwy klasy nie można rozpoznać.

Jeśli w instrukcji importu right-click -> Goto -> the package's declarationwidzę wszystkie zdekompilowane klasy wyświetlane w panelu bocznym - w tym te, których potrzebuję - Jeśli próbuję automatycznie uzupełnić instrukcję importu, zauważam, że potrzebna mi klasa nie jest uwzględniona w upuścić.

Próbowałem już unieważnić pamięci podręczne, nie działa. Nie mogę znaleźć żadnych konfliktów klas - w mojej ścieżce klas nie ma innego pliku jar o tej samej nazwie pakietu. Jestem w stanie zaimportować tę klasę do innych projektów.

Zobacz zrzuty ekranu:

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Czy ktoś ma wskazówkę?

Asaf Ebgi
źródło
1
Czy jesteś pewien, że biblioteka została dodana do modułu? Można go dodać jako bibliotekę projektu, ale nie może znajdować się w ścieżce klas modułów.
mkobit
tak - W strukturze projektu biblioteka jest dodawana jako zależność - Właściwie myślę, że to błąd w Intellij - Dzieje się losowo dla różnych bibliotek / projektów -
Ponowne odtworzenie
Jeśli wszystko, o czym mowa w odpowiedzi, jest prawidłowe. zamknij projekt i ponownie importuj. to rozwiązało ten problem dla mnie.
Hari Krishnan

Odpowiedzi:

250

możesz spróbować unieważnić pamięć podręczną i zrestartować intellij, w wielu przypadkach to pomoże.

Plik -> Unieważnij pamięć podręczną / Uruchom ponownie

sahitya
źródło
projekt sprzątania również pomógł
GeRyCh
2
@GeRyCh IMHO, Eclipse cleaning = Intellij
Invalidate
Dla mnie też nie działa. Mój JUnit był „Biblioteką globalną”. Kiedy to usuwam i dodam własną dystrybucję JUnit5 IntelliJ, działa. Kiedy następnie ponownie konwertuję tę zależność na bibliotekę globalną, powracają błędy. Podejrzewam, że to błąd, ponieważ zamiast tego konwersja do biblioteki projektu działa dobrze.
Mark Jeronimus
1
Dziękuję, to zadziałało dla mnie. Właśnie zacząłem używać Intellij i już mnie to denerwuje. Nie można wyskoczyć z nawiasów, trzeba ponownie uruchomić program, aby poprawnie się skompilował, to jest naprawdę Windows IDE Java.
azureai
3
Mam ten problem przynajmniej raz dziennie od kilku tygodni. Naprawdę mnie to stresuje, ponieważ ponowne indeksowanie wszystkiego trwa wiecznie.
spyro
38

Może być wiele przyczyn takiego stanu rzeczy. W moim przypadku był to zły problem ze źródłem. Unieważnij pamięci podręczne nie działały razem z innymi rozwiązaniami.

Sprawdź katalogi źródłowe modułów.

  1. Struktura projektu ( Ctrl+ Alt+ Shift+ S).

  2. Moduły

  3. Wybierz moduł problemu.

  4. Zmień zakładkę w górnej części okna „Źródła”.

  5. Usuń niechciane korzenie źródłowe. Zachowaj jeden i dodaj src i przetestuj korzenie źródła w tym katalogu głównym.

Vipin Thomas
źródło
1
Nie wiem, czy to działa w przypadku niektórych osób, ale wydaje się, że tak jest i zastanawiam się, dlaczego: w rzeczywistości twoja następna synchronizacja Gradle odtworzy wszystkie te katalogi źródłowe, które właśnie usunąłeś.
Fran Marzoa,
17

IntelliJ ma problemy z rozwiązywaniem zależności. Spróbuj wykonać następujące czynności:

  1. Kliknij prawym przyciskiem myszy pom.xml -> Maven -> Reimport
  2. Ponownie kliknij prawym przyciskiem myszy pom.xml -> Maven -> Generuj źródła i aktualizuj foldery
Chandlersingh
źródło
12

Sprawdź zależności modułów.

  1. Struktura projektu ( Ctrl+ Alt+ Shift+ S).
  2. Moduły
  3. Wybierz moduł problemu.
  4. Zmień zakładkę w górnej części okna „Zależności”.
  5. Sprawdź, jaka potrzebna biblioteka (być może musisz dodać określoną bibliotekę w zakładce 'biblioteki') lub moduł ma tutaj wymieniony i ma odpowiedni zakres (głównie 'kompletny').
Artem Moiseyenko
źródło
12

Uruchom to polecenie w konsoli projektu:

mvn idea:idea

Gotowe. Miałem ten problem wiele razy. Wypróbowano „Unieważnij pamięć podręczną i uruchom ponownie” i wszystkie inne rozwiązania. Uruchamianie tego polecenia działa dla mnie idealnie. Obecnie używam IntelliJ 2019.2, ale stało się to również w poprzednich wersjach i rozwiązanie również działało.

Liuver Reynier Durán Pérez
źródło
Przy okazji ta wtyczka
Maven
11

Miałem podobny problem, komentarz Mike'a pomógł mi podążać w kierunku jego rozwiązania.
Chociaż wymagana biblioteka była również częścią modułu w moim projekcie, wymagała zmiany zakresu. W zależności od modułu zmieniłem zakres na „ Kompiluj ” zamiast „ Testuj ” i teraz działa dobrze.

figlarka
źródło
Kompiluj, a nie testuj. Wiesz dlaczego?
30
1
Jak Ty to robisz? Kim jest Mike?
cellepo
8

Plik -> Unieważnij pamięć podręczną / Uruchom ponownie lub odbuduj projekt nie działa.

W moim projekcie Gradle działało „Odśwież wszystkie projekty Gradle” z zakładki Gradle w prawym górnym rogu IntelliJ v2017, używając żółtego przycisku pokazanego poniżej:

wprowadź opis obrazu tutaj

eaykin
źródło
Ta odpowiedź zadziałała również w przypadku mojego projektu Maven. W przypadku IntelliJ 2018.3.4 ikona pozostaje taka sama (niebieskie obracające się strzałki), ale dokładny tytuł opcji nazywa się „Reimport All Maven Projects”. Ogromne dla autora, tak ulżyło znalezienie właściwego rozwiązania problemu po godzinie badania
TomateFraiche,
4

Uważam, że następująca odpowiedź z @ jossef-harush i @ matt-leidholm jest przydatna z innego linku

  • w edytorze IntelliJ kliknij czerwone słowo kluczowe ( Integerna przykład) i naciśnij ALT+ ENTER(lub kliknij ikonę żarówki)
  • wybierz Setup JDKz menu intencje

Menu intencji IntelliJ

  • Kliknij Configure

Okno wyboru zestawu SDK projektu

  • W moim przypadku JDKścieżka była nieprawidłowa (wskazana /opt/jdk1.7.0_51zamiast /opt/jdk1.7.0_65)

Uszkodzone okno dialogowe konfiguracji zestawu SDK

  • kliknij ...i przejdź do właściwej JDKścieżki

Naprawiono okno dialogowe Konfiguruj SDK

  • wyczyśćmy pamięć podręczną

Menu Plik IntelliJ

manntsheth
źródło
4

Plik -> Unieważnij pamięć podręczną / Uruchom ponownie i skompiluj swój projekt

Surowa Mishra
źródło
3

Kliknij prawym przyciskiem myszy plik pom.xml, przejdź do Maven i kliknij Reimport. Miałem podobny problem i to zadziałało.

rdutta
źródło
1

Próbowałem unieważnić pamięci podręczne i zrestartować komputer, ale jedyną rzeczą, która działała, było całkowite wyczyszczenie katalogu .idea, a następnie utworzenie nowego projektu od zera.

sheldonkreger
źródło
To naprawdę nie jest rozwiązanie. Kiedyś tego próbowałem, ale nie ma to wpływu na mój przypadek.
Tung
1

Ten błąd pojawia się również wiele razy, gdy próbuję zbudować nowy projekt Java.

Poniżej znajduje się krok, w którym dostałem ten głupi problem.

  1. Utwórz pusty projekt i utwórz nowy katalog src/main/java.
  2. Utwórz pakiet źródłowy net.gongmingqm10.sketch.
  3. Użyj gradle wrapper, gradle ideado zbudowania rzeczy gradle dla projektu.
  4. Dodaj zależności w build.gradlepliku i gradle buildponownie zaimportuj projekt.
  5. Utwórz User.javaiw School.javaistniejącym pakiecienet.gongmingqm10.sketch
  6. Wystąpił błąd podczas próby użycia importu School w User.java.
  7. Intellij ciągle narzeka nie może rozwiązać symbolu podczas importu.

Rozwiązanie:

Najpierw zbuduj projekt i oznacz plik main / java jako katalog źródłowy. Utwórz nowy katalog o tej samej nazwie net.gongmingqm10.sketch. Przenieś wszystkie pliki ze starych kłopotliwych pakietów do nowego pakietu.

Główna przyczyna:

Drzewo katalogów kodu źródłowego

Jak widać z drzewa. Mam katalog o nazwie net.gongmingqm10.sketch. Ale to, czego naprawdę potrzebujemy, to katalog 3 poziomów: net-> gongmingqm10-> sketch

Ale zanim skończę budować mój projekt w Intellij, tworzę nowy katalog o nazwie net.gongmingqm19.sketch, który da mi prawdziwy katalog z tą nazwą net.gongmingqm10.sketch.

Kiedy próbujemy go zaimportować. Oczywiście, w jaki sposób intellij może zaimportować plik do katalogu weired o nazwie a.b.c.

Ming Gong
źródło
Dzięki stary, to był mój problem. edycja: opracowywanie ... Skopiowałem z 1 modułu Maven do innego, a kopia spłaszczyła katalogi. Podczas gdy Intellij wyglądał tak, jakby wszystko było posortowane, mój folder był w rzeczywistości „abc”, a nie a> b> c.
Qbert
1

@Anton Dozortsev Podobne zachowanie doprowadziło mnie do szału; Skończyło się na tym, że kilka razy ponownie instalowałem IDE, omijając problem dopiero po usunięciu aplikacji IDEA, wszystkich pamięci podręcznych, preferencji itp.

W międzyczasie próbowałem wykonywać różne czynności (takie jak ponowne uruchamianie, unieważnianie, usuwanie .ideai *.imlpliki i inne).

Okazuje się, że problem był spowodowany idea.max.intellisense.filesizeustawieniem IntelliJ . Ustawiłem go na 100KB, czyli mniej niż rozmiar mojej zależności, co doprowadziło do tego, że IntelliJ pokazał go jako nieznany, tak jak na twoim zrzucie ekranu.

Naprawić:

  1. Kliknij Pomoc -> Edytuj właściwości niestandardowe

  2. Ustaw właściwość na większą wartość; wartość domyślna to 2500 KB idea.max.intellisense.filesize=2500

Mihai Bojin
źródło
1

Miałem ten sam problem, dopóki nie zauważyłem, że folder src został oznaczony jako źródło root zamiast java ! Zmiana na java (src / main / java) jako źródłowa root rozwiązała mój problem wprowadź opis obrazu tutaj

Pipo
źródło
1

Po długich poszukiwaniach odkryłem, że zależność została w jakiś sposób uszkodzona na moim komputerze w projekcie maven. Dziwne było to, że zależność nadal działała poprawnie w skompilowanym kodzie java. Kiedy jednak wyczyściłem i odbudowałem pamięć podręczną zależności mavena, problem zniknął i IntelliJ rozpoznał pakiet. Możesz to zrobić, uruchamiając:

mvn dependency:purge-local-repository

Co ciekawe, źródłem mojego problemu nie był IntelliJ, ale sam maven.

JohannesB
źródło
1

Proszę spróbować Plik-> Synchronizuj. Następnie zamknij i ponownie otwórz IntelliJ przed unieważnieniem.

Raz uruchomiłem ponownie. Unieważniłbym, ale synchronizacja wyczyściła wszystko po ponownym uruchomieniu.

Adam M. Erickson
źródło
0

Prosty restart działał dla mnie.

Sugerowałbym najpierw spróbować z restartem, a następnie możesz zdecydować się na unieważnienie pamięci podręcznej.

PS: Wyczyszczenie pamięci podręcznych systemu spowoduje wyczyszczenie historii lokalnej.

neoguy
źródło
0

Miałem podobny problem z moim importowanym projektem Maven. W jednym module nie może rozwiązać symbolu podczas importu dla części drugiego modułu (tak, część tego modułu może zostać rozwiązana).

Zmieniłem „katalog domowy Mavena” na nowszą wersję rozwiązało mój problem.

Aktualizacja: Dobra przez 1 godzinę, powrót do stanu zepsutego ...

Wenbin
źródło
0

Znalazłem przyczynę!

W moim przypadku dodaję plik jar zawierający jakiś plik źródłowy java, ale myślę, że źródło java jest złe, w bibliotece zależności Intellij Idea automatycznie dodaje źródło, więc w Edytorze import jest ZŁY , PO PROSTU usuń kod źródłowy w " Struktura projektu "->" Biblioteka ", u mnie działa.

crazycode
źródło
0

Zrobiłem to dla mnie, aby edytować plik pakietu w folderze .idea, ponieważ przypadkowo dodałem źródła do tej biblioteki jar, a Android nie mógł go rozwiązać, usuwając linię źródeł, jak zaznaczono w błędzie biblioteki obrazów b / m .

Następnie odbuduj gradle i bam problem rozwiązany.

mario
źródło
0

Miałem ten sam problem, a powodem tego było nieprawidłowe oznaczenie źródeł projektu.

Ręcznie utworzyłem zawartość główną i nie zauważyłem, że src/main/testfolder został oznaczony jako Sourceszamiast Tests. Więc dlatego przyjęto moje zajęcia testowe mieć wszystkie swoje biblioteki testowe ( JUnit, Mockitoetc.) z zakresu kompilacji nie testów.

Jak tylko oznaczyłem src/main/testjako Testy i przebudowałem moduł, wszystkie błędy zniknęły.

Евгений Гордиенко
źródło
0

Miałem to niedawno, próbując użyć Intellij do pracy na NiFi, okazało się, że problem polegał na tym, że NiFi wymaga Maven> = 3.1.0, a wersja, z którą sprawdzałem (domyślam się, że moja) to 3.0.5. Aktualizacja wersji Mavena dla projektu naprawiła ten problem, więc w niektórych przypadkach nieprawidłowe wyrównanie wersji Mavena może wyglądać ... Myślę, że jest to dość niezwykłe, ale jeśli zajdziesz tak daleko, prawdopodobnie masz nietypowy problem :)

Izaak
źródło
0

Ten sam problem. Jeśli te metody nie działają. możesz spróbować usunąć bibliotekę z lokalnego repozytorium maven i ponownie zaimportować do pom.

repozytorium mvn

W końcu to dla mnie w porządku.

projekt

Misire J.
źródło
0

file-> Project Structure-> Modules, znajdź moduł z problemami, kliknij go i wybierz Dependencieszakładkę po prawej stronie. Kliknij zielony znak plus, spróbuj dodać słoik lub biblioteki, które powodują problem. To działa dla mnie.

SteveHu
źródło
0

Nic, co próbowałem powyżej, nie działało dla mnie (nie to, że wypróbowałem każdą sugestię). W końcu udało się zmienić nazwę klasy - po prostu dodałem 2 do nazwy klasy i nazwy pliku. Następnie rozwiązałem wszystkie odniesienia ręcznie. (Ponieważ nie zostały rozpoznane, refaktoryzacja nie zmieniła automatycznie odniesień).

Gdy "wersja 2" została szczęśliwie rozwiązana wszędzie, byłem w stanie refaktoryzować i usunąć 2 z klasy i pliku, i wszystko było tak, jak powinno.

szare komórki
źródło
0

w moim przypadku rozwiązaniem było dodanie projektu jako projekt mavena, poza tym, że zaimportowałem jako projekt maven: P

przejdź do pom.xml -> kliknij prawym przyciskiem myszy -> dodaj jako projekt maven

lempesis
źródło
0

Intelli iDEA powoduje te głupie problemy @ razy. Proste goto pom.xml, kliknij prawym przyciskiem myszy i zrób -> Maven -> Reimport.

To powinno rozwiązać problem.

Aditya Goel
źródło
0

W przypadku edycji 2020.1.4 Ultimate musiałem wykonać następujące czynności

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

Dla mnie problemem było to, że biblioteki nie były zapełniane z mvn -U clean installterminala.

wprowadź opis obrazu tutaj

user1599755
źródło
-1

Brakuje io? Spróbuj import org.openide.util.io.ImageUtilities.

Shanjun Li
źródło