Wystąpił błąd w środowisku Eclipse. Co oznacza ten komunikat o błędzie:
Nie można rozwiązać typu iglu.ir.TermVector. Jest pośrednio przywoływany z wymaganych plików .class
Wystąpił błąd w środowisku Eclipse. Co oznacza ten komunikat o błędzie:
Nie można rozwiązać typu iglu.ir.TermVector. Jest pośrednio przywoływany z wymaganych plików .class
Odpowiedzi:
Oznacza to: „Klasa, której używasz, potrzebuje innej klasy, której nie ma w ścieżce klas”. Powinieneś upewnić się (jak sugeruje Harry Joy), aby dodać wymagany słoik do ścieżki klasy.
Jest to tak samo prawdopodobne, że Eclipse się myli, jak faktyczny błąd. Zignorowałem błąd i uruchomiłem usługę internetową, na której interfejs się skarżyłem, i działało dobrze, z wyjątkiem konieczności radzenia sobie z oknem dialogowym za każdym razem, gdy chciałem go uruchomić. Kolejny nieprzejrzysty błąd, który nic mi nie mówi.
Czasami mi się to zdarza, zawsze naprawiałem to za pomocą polecenia „mvn eclipse: clean”, aby wyczyścić stare właściwości, a następnie uruchomić mvn eclipse: eclipse -Dwtpversion = 2.0 (oczywiście dla projektu internetowego). Zapisano kilka starych właściwości, więc zaćmienie jest czasami mylone.
mvn eclipse:cleani / lub mvn eclipse:eclipsewydaje się magiczną sztuczką, aby to zadziałało.
Miałem ten błąd z powodu uszkodzonego lokalnego repozytorium maven .
Tak więc, aby rozwiązać problem, wszystko, co musiałem zrobić, to iść do mojego repozytorium i usunąć folder, w którym znajdował się dany plik .jar, a następnie wymusić włączenie update mavenw Eclipse.
Wygląda na to, że jest to znany problem (błąd 67414), który został rozwiązany w wersji 3.0 ... ktoś skomentował, że występuje on również w wersji 3.4.
W międzyczasie obejście polega na usunięciu biblioteki systemowej JRE z projektu, a następnie dodaniu jej ponownie.
Here are the steps:
Przejdź do właściwości projektu z błędem kompilacji (kliknij prawym przyciskiem myszy> Właściwości)
Wyświetl kartę „Biblioteki” w sekcji „Ścieżka kompilacji”
Znajdź na liście „Bibliotekę systemową JRE” (jeśli jej brakuje, to ten komunikat o błędzie nie jest błędem zaćmienia, ale źle skonfigurowanym projektem)
Usuń „bibliotekę systemową JRE”
Naciśnij „Dodaj bibliotekę ...”, wybierz „Bibliotekę systemową JRE” i dodaj odpowiednie środowisko JRE dla projektu (np. „Domyślne środowisko JRE obszaru roboczego”)
Naciśnij „Zakończ” w wyborze biblioteki i „OK” we właściwościach projektu, a następnie poczekaj na ponowną kompilację projektu
Mam nadzieję, że błąd zostanie rozwiązany ...
Ten błąd występuje, gdy klasy w pliku jar nie mają takiej samej struktury jak struktura folderów jar.
np. jeśli plik klasy ma pakiet com.test.exam, a plik klas.jar utworzony z tego pliku klasy ma strukturę test.exam ... zostanie zgłoszony błąd. Musisz poprawić strukturę pakietu swojego pliku klas.jar, a następnie dołączyć go do ścieżki kompilacji ecplipse ...
Dostałem ten wyjątek, ponieważ środowisko Eclipse działało w innej wersji jdk, po prostu zmieniło się na poprawne, czyste i kompilowane i działało!
Miałem ciekawy przypadek tego problemu z Eclipse 4.4.2. Mój projekt (P1) odwoływał się do klasy zewnętrznej (projekt P2) za pomocą dwóch metod o tej samej nazwie, ale różnych typach argumentów:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Ten typ Itembył zawarty w trzecim projekcie P3, którego nie chciałem tutaj widzieć. P1 wywołał tylko pierwszą metodę:
ExternalClass.setItem(Integer.valueOf(12345));
Tak więc druga metoda, która wykorzystała Itemklasę, nie została użyta i prawdą jest, że P3 nie było w ścieżce klas kompilacji - dlaczego miałoby to być, gdyby nie była używana.
Nadal Eclipse mi powiedział
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
Kompilacja z wiersza poleceń nie spowodowała takich problemów. Zmiana nazwy drugiej metody (nieużywanej tutaj!) Spowodowała, że problem zniknął również w Eclipse.
Naprawiłem to right clicking on project > Maven > Update Project
Dla mnie dzieje się tak, gdy aktualizuję jdk do wersji 1.8.0_60 z moim starym zestawem słoików używanym od dawna. Jeśli wrócę do jdk1.7.0_25, wszystkie te problemy zniknęły. Wydaje się, że jest problem z kompatybilnością środowiska JRE i bibliotek.
Wystąpił błąd, gdy zmieniam tylko niektóre ustawienia svn, a nie nic w kodzie. Samo czyszczenie projektów naprawiło błąd.
W moim przypadku stworzyłem projekt i wykonałem go minSdkVersion=9i targetSdkVersion=17. Użyłem automatycznie wygenerowany libs/android-support-v4.jar. Musiałem także skorzystać z ActionBarActivityużywania android-support-v7-appcomapt.jar. Właśnie skopiowałem android-support-v7-appcompat.jarplik z android-sdk/extras/andrid/support/v7/appcompat/libsfolderu i wkleiłem go do libsfolderu projektu . A to spowodowało powyższy błąd. Zasadniczo musiałem również umieścić android-support-v4.jarplik android-sdk/extras/andrid/support/v7/appcompat/libsw libsfolderze projektu . Według mojej wiedzy v7.jarplik miał zależności od v4.jarpliku. Potrzebował więc własnego v4.jarpliku, zamiast mojego projektu automatycznie utworzonego v4.jarpliku.
Szybko i prosto naprawiłem to w ten sposób (używam wersji ADT: v21.0.0-531062 w domowej wersji systemu Windows XP)
Działało ALE problem powraca co kilka dni. Robię to samo co powyżej, co rozwiązuje i pozwala mi się rozwijać.
Oprócz sugerowanej już przyczyny braku pliku klasy błąd ten może również wskazywać na duplikat pliku klasy, środowisko eclipse zgłasza ten błąd, gdy plik klasy na ścieżce kompilacji używa innej klasy, która ma wiele definicji w ścieżce kompilacji.
Ponieważ podajesz nam bardzo mało szczegółów, najprawdopodobniej to, co zrobiłeś, co jest niezwykle łatwym błędem do popełnienia, to to, że zamiast udać się do
Build Path > Configure Build Path > Projects
i dodając stamtąd dodatkowy folder projektu, zamiast tego poszedłeś do
Build Path > Configure Build Path > Libraries
i zamiast tego dodał folder projektu.
Jest to z pewnością przypadek, jeśli cały kod jest poprawny, ale po automatycznej reorganizacji importów za pośrednictwem ctrl+space skrótu, zamiast instrukcji importu odnoszących się do com.your.additionalproject, wszystkie odniesienia wskazują na bin.com.your.additionalproject.
Zwróć uwagę na kosz. Oznacza to, że pośrednio odwołujesz się do swojej klasy, traktując inną strukturę folderów projektu jako bibliotekę, dzięki czemu Twoje IDE robi wszystko, aby znaleźć dokładnie binarną klasę, o której mówisz.
Aby to naprawić, usuń folder z bibliotek, a zamiast tego dodaj go na karcie Projekty i zreorganizuj import. Twój projekt powinien działać dobrze.
Gdy korzystam z nowej wersji zaćmienia i próbuję użyć poprzedniego obszaru roboczego, którego użyłem ze starą wersją zaćmienia, wystąpił ten błąd.
Oto jak rozwiązać problem:
Kliknij prawym przyciskiem myszy mój projekt w Eksploratorze pakietów -> Właściwości -> Ścieżka kompilacji Java -> Biblioteki -> Widzę błąd (znak krzyżykowy) w bibliotece systemowej JRE. Ponieważ nie można znaleźć ścieżki. -> Kliknij dwukrotnie bibliotekę systemową JRE -> Wybierz opcję „Domyślne środowisko JRE obszaru roboczego” -> Zakończ -> OK. -> BUM TO DZIAŁA
Do Twojej wiadomości
W moim przypadku było to wynikiem dodania nowej zależności do mojego pom.xmlpliku.
Nowa zależność zależała od starej wersji biblioteki (2.5). Ta sama biblioteka była wymagana przez inną bibliotekę w mojej pom.xml, ale wymagała wersji 3.0.
Z jakiegoś powodu, gdy Maven napotyka te konflikty, po prostu pomija najnowszą wersję. W Eclipse podczas przeglądania pom.xmlmożesz wybrać zakładkę „hierarchia zależności” u dołu, aby zobaczyć, jak zależności są rozwiązywane. Tutaj dowiesz się, czy omawiana biblioteka (a tym samym klasa) została pominięta z tego powodu.
W moim przypadku było to tak proste, jak zablokowanie nowszej wersji. Możesz to zrobić, klikając wpis prawym przyciskiem myszy - istnieje możliwość zablokowania go w menu kontekstowym.
Wskaż JRE na ścieżce kompilacji na JDK. To działało dla mnie.