Co w Eclipse może powodować ikonę błędu „red-x” w Eksploratorze pakietów, gdy wszystkie źródła Java kompilują się bez błędów?

97

Używam Eclipse do programowania w języku Java. Wszystkie moje źródła kompilują się dobrze, a wynikowa aplikacja dobrze się kompiluje. Jednak w Eksploratorze pakietów ciągle otrzymuję powiadomienie o błędzie „red-x”.

Wszystkie moje źródła w tym katalogu źródłowym (zbyt długie na migawkę) kompilują się dobrze, żadne z nich nie pokazuje ikony błędu „red-x”.

Wszelkie sugestie dotyczące rozwiązania problemu będą bardzo mile widziane.

Alfred B. Thordarson
źródło

Odpowiedzi:

168

tak, zdarza się to czasami bez wyraźnego powodu. Możesz przejść do zakładki „Problemy” (tuż obok wyjścia konsoli) i zobaczyć komunikat o błędzie, więc może możesz to zawęzić w ten sposób.

Jan Gressmann
źródło
6
Dostaję go szczególnie, gdy inny składnik inny niż Java nie przejdzie walidacji (dobrym przykładem może być plik XML, taki jak Spring lub Maven).
Spencer Kormos
2
jeśli widzisz jakiś problem w widoku problemu, to jest oczywista przyczyna. Nie widziałem jeszcze żadnego błędu bez wyraźnego powodu :)
nanda
Dodając do odpowiedzi jan-gressmana. Czasami, gdy spojrzysz na zakładkę „Problemy”, zauważysz, że problemem są dodatkowe pliki z podkreśleniem w niektórych folderach, np. __Duplicatefile.java. Aby to naprawić, kliknij prawym przyciskiem myszy projekt i wybierz: Pokaż w> Nawigator. Następnie usuń zduplikowane pliki z podkreśleniem i skompiluj swój projekt.
GraSim
3
Ja też na to napotykam - często. Dla mnie sprowadza się to do ręcznych zmian w moim pliku POM podczas używania zamiennie Eclipse & Maven i wiersza poleceń (mvn). Aby naprawić: użyj zakładki Problemy, aby zdiagnozować jak opisano powyżej, a jeśli to POM nie jest zsynchronizowany, możesz „Zaktualizować projekt” za pomocą Mavena w Eclipse: „Kliknij prawym przyciskiem myszy projekt w Eksploratorze pakietów, wybierz„ Maven ", Wybierz" Aktualizuj projekt ". Upewnij się, że wybrano opcję „Aktualizuj konfigurację projektu z pom.xml”, „Odśwież obszar roboczy ...” i „Wyczyść projekty”.
Zack Jannsen
Dobra rada dotycząca problemów. Mój projekt wymagał aktualizacji.
downeyt
17

Zdarza się to często, gdy używam Mavena i zawsze to ignorowałem, dopóki nie znalazłem tego pytania. W tym przypadku musisz zaktualizować projekt (zorientowałem się, patrząc w okienku Problemy)

Z menu kontekstowego projektu: Maven -> Update Project i wybierz dostępne bazy kodów Maven

Alternatywnie możesz użyć (Alt + F5), aby wywołać to samo okno

Patrick Schaefer
źródło
1
Nawet kiedy trafiam na projekt aktualizacji, nie rozwiązuje to problemu. W zakładce problemów dostaję 100 błędów pokazujących niezdefiniowane / niezainicjowane / nie można rozwiązać na typ ... Wszelkie przemyślenia, jak pozbyć się tego naprawdę szybko
Eswar
11

Spróbuj wyczyścić projekt i odbudować go.

Lampa błyskowa
źródło
7

Po zbudowaniu. Odśwież projekt i jeśli nadal się utrzymuje, kliknij prawym przyciskiem myszy kartę Problemy w zaćmieniu i wybierz usuń wszystko.

Zdarza się to często, jeśli wykonasz instalację maven, a pliki właściwości eclipse nie zostaną poprawnie zaktualizowane. Mimo że Twój projekt nie zawiera żadnych błędów. Ufnie!

AaMng
źródło
Kliknij prawym przyciskiem myszy w obszarze zakładki Problemy i wybierz „Usuń” - to właśnie chciałem usłyszeć!
Gabriel Staples
5

Chcę zacząć od podziękowania wszystkim, którzy odpowiedzieli. Ale czyszczenie i odbudowa nie wystarczyły w moim przypadku, ponieważ problem nadal istniał i wymagał naprawy.

Okazało się, że jeden z moich katalogów pakietów został przypadkowo skopiowany i teraz istniał dodatkowy katalog o nazwie „Kopia dagskry” zawierający pliki Java z nieprawidłowymi deklaracjami pakietów. Ponadto błędy w tym „nowym” katalogu nie pojawiają się z „czerwonym-x” w pakiecie, w którym istnieje:

Migawka z Eksploratora pakietów pokazująca błędny katalog „Copy of dagskra” http://www.freeimagehosting.net/uploads/a824304b18.png

To wskazówka dotycząca przeczytania zakładki „Problemy” :-) skierowała mnie we właściwym kierunku, więc wybieram tę odpowiedź jako zaakceptowaną, ponieważ właśnie tego potrzebowałem:

Migawka z zakładki Problemy http://www.freeimagehosting.net/uploads/dea26d5dd0.png

Mając nadzieję, że to pomoże innym ...

Alfred B. Thordarson
źródło
2

Więc po stwierdzeniu, że może brakować pakietu w ścieżce kompilacji, a więc czerwony x przeciwko głównemu projektowi, aby usunąć to:

1) przejdź do „Configure Buildpath” projektu 2) Java Build Path -> Source Tab - powinieneś zobaczyć czerwony znak x na brakującym pakiecie / pliku. jeśli już nie istnieje, po prostu ją „usuń”.

czerwony X się skończył! :)


źródło
1

Czasami w programie .project występują błędy ścieżki kompilacji i należy przełączyć się do widoku zasobów, aby faktycznie zobaczyć plik, który powoduje błąd.

JeeBee
źródło
1

Jak powiedzieli inni, przyczyną często są złe odwołania do plików w ścieżce budowania.

Zwykle plik .jar, który został przeniesiony / usunięty. Eclipse spodziewa się znaleźć wszystko, do czego odwołuje się ścieżka budowania, w określonej lokalizacji, a jeśli nie, będzie narzekać.

madlep
źródło
1

Miałem ten sam problem i poniższe kroki rozwiązały problem:

  1. Usuń środowisko JRE z PROJEKTU> właściwości> ścieżka budowania java> biblioteki.

  2. Uruchom ponownie zaćmienie

  3. Dodaj ponownie środowisko JRE

  4. Przebuduj projekt za pomocą opcji Projekt> Wyczyść i wybierz opcję automatycznego budowania.

Proszę spróbować.

słońce2
źródło
To pytanie ma prawie cztery lata, na które udzielono już odpowiedzi, a to jest powtórzenie odpowiedzi. Prosimy o publikowanie nowych informacji tylko wtedy, gdy mogą one pomóc autorowi pytania.
Sam,
Przepraszam za zamieszanie, ale tak jak ja to widzę, próbowałem zamieścić nową odpowiedź, a nie duplikat.
niedz. 2
Jestem tutaj z tym samym problemem 28.01.18. nadal dobrze jest udzielać odpowiedzi niezależnie od tego, ile lat ma pytanie.
Tadele Ayelegn
1

Czasami winowajcą jest również Subversion. Może to nie mieć nic wspólnego z twoim środowiskiem. Może jednak wystąpić rozbieżność między obecnym a stanem lokalnym projektu. W moim przypadku wykonanie aktualizacji, a następnie zatwierdzenie do serwera subversion zapewniło mi oczekiwany czysty wynik bez żadnych flag w projekcie, takich jak X.

Jay Snayder
źródło
Widzę, że wtyczki SVN dla zaćmienia nie są zbyt stabilne. Ciągle mam z nimi problemy. Zrzucam na nich winę (nie mając pojęcia, tylko przeczucie). To, co zaproponowałeś, zadziałało dla mnie +1.
Pantelis Natsiavas,
0

Spróbuj odbudować. Odkryłem, że czerwone znaki x nie zawsze znikają, dopóki nie zostanie ukończona odbudowa.

mdec
źródło
0

Wielokrotnie napotykam podobny problem, co zwykle się dzieje, gdy plik java powie, że nie zostanie skompilowany w edytorze tekstu, ale w eksploratorze pakietów powie, że kompiluje się dobrze.

Czasami `` przebudowa '' lub `` czysta kompilacja '' nie działa, pliki w rzeczywistości nie są budowane (należy zakładać, że eclipse myśli, że pliki, które ma, są aktualne), a kiedy to się dzieje, zwykle otwieram ścieżkę budowania java i po prostu przenieś jedną z moich zależności w dół / w górę w kolejności dziobania. To zmusza Eclipse do odbudowy wszystkiego i zawsze wydaje się działać.

Jeśli nadal masz problemy, spróbuj skopiować projekt i zobacz, czy zachowujesz się tak samo, a przy ostatniej próbie opublikowania błędu dotyczącego zaćmienia może to zająć trochę czasu, zanim je naprawisz, ale przynajmniej wiesz, że jesteś słyszał.

Henry B.
źródło
0

Aby dodać do poprzedniej odpowiedzi, skrajnym sposobem „wyczyszczenia” projektu jest usunięcie go (czyli usunięcie jego odniesienia z obszaru roboczego, a nie usunięcie samych plików), a następnie ponowne zaimportowanie go.
Czasami pomaga ...

VonC
źródło
0

FindBugs umieszcza również czerwony-x w stosunku do plików / pakietów, aby wskazać błędy analizy kodu statycznego.

Rahul
źródło
0

Przejrzałem to. Moja sprawa była bardziej zaangażowana. Projekt został dobrze spakowany z wiersza poleceń maven.

Kilka rzeczy, które zrobiłem. 1. Jedna klasa ma wiele importów, które dezorientują zaćmienie. Wyczyszczenie ich rozwiązało część problemu 2. Jeden przypadek dotyczył setera, naciskając klawisz F3, aby przejść do tego setera, chociaż eclipse skarżyło się, że go nie ma. Więc po prostu przepisałem to i działało dobrze (nawet dla wszystkich innych Seterów)

Nadal zmagam się z niejawnym konstruktorem nadrzędnym Pozycja () jest niezdefiniowana dla domyślnego konstruktora. Musi zdefiniować jawnego konstruktora "


źródło
0

Od czasu do czasu napotykam te tajemnicze symbole błędów na opakowaniach. Sposobem na pozbycie się ich, który działa dla mnie, jest skuteczne usunięcie biblioteki systemowej JRE ze ścieżki budowania Java i dodanie jej ponownie.

greiball
źródło
pytający zapytał o przyczynę, podałeś obejście
johannes
0

Moim rozwiązaniem, które w końcu zadziałało, było wyczyszczenie wszystkich projektów, zamknięcie zaćmienia, wyczyszczenie wszystkich projektów, zamknięcie zaćmienia i tak dalej co najmniej 5-6 razy. W końcu wszystko się uspokoiło i wszystko poszło zgodnie z oczekiwaniami. Najdziwniejsza rzecz na świecie !!

I nie, nie było błędów w widoku Problem lub konsoli.

Stało się to również po awarii komputera. Ostatnim razem, gdy to się stało, straciłem całą przestrzeń roboczą. Wciąż znajdował się na komputerze, ale kiedy próbowałem uzyskać do niego dostęp, był pusty.

Z jakiegoś powodu awarie komputera są naprawdę bardzo źle obsługiwane przez zaćmienie.

Stephane Grenier
źródło
0

Możesz również zaktualizować projekt, klikając,

Kliknij prawym przyciskiem myszy nazwę projektu -> Wybierz Maven -> Kliknij prawym przyciskiem myszy -> Aktualizuj projekt.

Pomogło mi to.

Dzięki.

abhijitcaps
źródło
0

Może się tak zdarzyć z wielu powodów. Jeśli zmienisz jdk, obok aspektu projektu pojawi się czerwony znak X, podczas gdy żaden inny folder nie będzie wyświetlał błędu. W takim przypadku zmodyfikuj wyświetlony plik jdk. Zdarza się to czasami w naszej klasie JAX-WS ( HSG

Andreas
źródło
0

Rozwiązałem swoje przez

  • Zamknij wszystkie inne projekty (tj. Opcja projektu niepowiązanego)

  • Oczyść i zbuduj

Mój projekt był androidem i to wystarczyło.

Katedral Pillon
źródło
0

Stało się tak, gdy pobrałem fabric.io na Eclipse Mars, ale ponowne uruchomienie komputera rozwiązało ten problem.

Sheraz Ahmad Khilji
źródło
0

W moim przypadku rozwiązaniem tego problemu było po prostu zamknięcie Eclipse i ponowne otwarcie go ... Jednak nadal nie jestem pewien, dlaczego tak się stało i dlaczego zadziałało. Miałem problemy z czyszczeniem mojego projektu (powiedział, że nie można usunąć określonego pliku) i to rozwiązało problem :):

DarkCygnus
źródło
0

miałem ten sam problem. Sprawdziłem "Problemy" -Tab i nie znalazłem serwera dla projektu. Zdefiniowałem serwer. czerwony-x zniknął

Hao
źródło
0

Możesz przejść do projektu-> Buildpath-> Library

Jeśli jest jakaś biblioteka oznaczona X, tj. [Zaznaczona krzyżykiem], usuń ją i ponownie spróbuj zbudować. U mnie też się udało /

Anjali
źródło
0

Napotkałem dziś ten problem i znalazłem ten link. Podążyłem za tym, jak wspomniał powyżej Patrick Schaefer, i otworzyłem okno dialogowe projektu Update Maven. Kliknij mój projekt roboczy i zaznacz pole wyboru „Wymuś aktualizację migawek / wydań” i „OK”. Cały czerwony krzyż zniknął. Mam nadzieję, że pomoże to komukolwiek w podobnej sytuacji.

eshu
źródło
-2

Kliknij prawym przyciskiem myszy projekt z błędami, a następnie w podmenu wybierz: Maven > UpdateProject >

i wtedy:

  • Zaznacz pole wyboru dla wszystkich projektów zależnych
  • wybierz wymuszenie aktualizacji migawek
  • Kliknij OK.

To zadziałało dla mnie ...

icedMeteor
źródło