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ę?


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


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.


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

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').

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.


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.


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


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



3

Kliknij prawym przyciskiem myszy plik pom.xml, przejdź do Maven i kliknij Reimport. Miałem podobny problem i to zadziałał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.


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.


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


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


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.


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.


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.


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 ...


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.


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.


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.


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 :)


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


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.


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.


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


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.


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


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.