Я отримав помилку в Eclipse. Що означає це повідомлення про помилку:
Тип iglu.ir.TermVector неможливо вирішити. На це опосередковано посилаються необхідні файли .class
Я отримав помилку в Eclipse. Що означає це повідомлення про помилку:
Тип iglu.ir.TermVector неможливо вирішити. На це опосередковано посилаються необхідні файли .class
Відповіді:
Це означає: "Класу, який ви використовуєте, потрібен інший клас, який відсутній на шляху." Ви повинні переконатись (як пропонує Гаррі Джой), щоб додати необхідну банку на класний шлях.
Це, мабуть, питання Eclipse плутається, оскільки це фактична помилка. Я проігнорував помилку і запустив веб-службу, на кінцеву точку інтерфейсу якої скаржився, і вона спрацювала нормально, за винятком того, що я мав справу з діалогом щоразу, коли мені хотілося запустити її. Ще одна непрозора помилка, яка мені нічого не говорить.
Іноді трапляється зі мною, я завжди фіксував, що за допомогою команди "mvn eclipse: clean" очистити старі властивості, а потім запустити mvn eclipse: eclipse -Dwtpversion = 2.0 (для веб-проекту, звичайно). Є деякі старі властивості, збережені, тому затемнення іноді плутають.
mvn eclipse:cleanта / або mvn eclipse:eclipseздається магічним трюком, щоб змусити його працювати.
У мене виникла помилка через пошкоджене місцеве сховище Maven .
Отже, щоб виправити проблему, все, що мені потрібно було зробити, - це зайти в моє сховище та видалити папку, де був відповідний .jar, а потім примусити update mavenв Eclipse.
Здається, це була відома проблема (Bug 67414), яка була вирішена в 3.0 ... хтось прокоментував, що для них це також відбувається в 3.4.
Тим часом вирішення завдання полягає в тому, щоб видалити системну бібліотеку JRE з проекту, а потім знову додати її.
Here are the steps:
Перейдіть до властивостей проекту з помилкою збірки (клацніть правою кнопкою миші> Властивості)
Перегляньте вкладку "Бібліотеки" в розділі "Шлях побудови"
Знайдіть у списку "Системну бібліотеку JRE" (якщо цього немає, то це повідомлення про помилку - це не помилка затемнення, а неправильно налаштований проект)
Видаліть "Системну бібліотеку JRE"
Натисніть "Додати бібліотеку ...", виберіть "Системна бібліотека JRE" та додайте відповідний JRE для проекту (наприклад, "JRE для робочої області за замовчуванням")
Натисніть "Готово" у виборі бібліотеки та "ОК" у властивостях проекту, а потім дочекайтеся відновлення проекту
Сподіваємось, помилка буде усунена ...
Ця помилка виникає, коли класи у файлі jar не відповідають тій самій структурі, що і у структурі папок банку.
Наприклад, якщо у файлі класу є пакет com.test.exam, а у файлів class.jar, створеного з цього файлу класу, є структура test.exam ... буде викинута помилка. Вам потрібно виправити структуру пакета для вашага groups.jar, а потім включити його в шлях збірки ecplipse ...
Я отримав це виняток, тому що eclipse працював у іншій версії jdk, просто змінився на правильний, очистив і створив і працював!
У мене був цікавий випадок цієї проблеми із Eclipse 4.4.2. Мій проект (P1) посилався на зовнішній клас (проект P2) двома методами з однаковою назвою, але різними типами аргументів:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Тип Itemмістився в третьому проекті P3, який я не хотів, щоб його бачили тут. P1 називав лише перший метод:
ExternalClass.setItem(Integer.valueOf(12345));
Отже, другий метод, який використовував Itemклас, не використовувався, і правда, що P3 не був у класі компіляції - чому він повинен, якщо він не використовується.
Ще Затміння мені сказало
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
Компіляція з командного рядка не викликала таких проблем. Зміна назви другого методу (тут не використовується!) Також усунула проблему в Eclipse.
Що це зафіксувало для мене right clicking on project > Maven > Update Project
Я отримав помилку, коли я просто змінював деякі налаштування svn, а не щось у коді. Просто очищення проектів виправило помилку.
У моєму випадку я створив проект і зробив його minSdkVersion=9і targetSdkVersion=17. Я використовував автоматично створений libs/android-support-v4.jar. Я також повинен був скористатися ActionBarActivityвикористанням android-support-v7-appcomapt.jar. Тому я просто скопіював android-support-v7-appcompat.jarфайл із android-sdk/extras/andrid/support/v7/appcompat/libsпапки та вставив його до своєї libsпапки проекту . І це спричинило вищевказану помилку. Отже, мені потрібно було також помістити android-support-v4.jarфайл android-sdk/extras/andrid/support/v7/appcompat/libsу свою libsпапку проекту . Наскільки мені відомо, v7.jarфайл залежав від v4.jarфайлу. Отже, йому потрібен був власний v4.jarфайл, а не мій проект, автоматично створений v4.jarфайл.
Швидко та просто я виправив це таким чином (я використовую версію ADT: v21.0.0-531062 у домашній версії Windows XP)
Працювало, але проблема повертається кожні кілька днів. Я роблю те саме, що вище, і це вирішує і дає мені можливість розвиватися.
На додаток до вже запропонованої причини відсутності файлу класу ця помилка може також вказувати на повторюваний файл класу, eclipse повідомляє про цю помилку, коли файл класу на шляху збирання використовує інший клас, який має декілька визначень на шляху збирання.
Оскільки ви даєте нам дуже мало подробиць, найімовірніше, що ви зробили, що є надзвичайно простою помилкою, це те, що замість того, щоб прямувати до
Build Path > Configure Build Path > Projects
і додавши туди свою додаткову папку проекту, замість цього ви перейшли до
Build Path > Configure Build Path > Libraries
і додав туди свою папку проекту.
Це, безумовно, так, якщо ваш код все правильно, але після автоматичної реорганізації імпорту за допомогою ctrl+spaceярлика замість ваших заяв про імпорт, що стосуються com.your.additionalproject, всі ваші посилання вказують на bin.com.your.additionalproject.
Зверніть увагу на смітник. Це означає, що ви опосередковано посилаєтесь на свій клас, ставлячись до іншої структури папок проекту як до бібліотеки, змушуючи ваш IDE робити все вокр пошуку саме бінарного класу, на який ви посилаєтесь.
Щоб виправити це, вийміть папку з бібліотек, а замість цього додайте її на вкладці Проекти та реорганізуйте імпорт. Ваш проект повинен добре працювати.
Коли я використовую нову версію eclipse і намагаюся використовувати попередню робочу область, яку я використовував зі старою версією eclipse, ця помилка сталася.
Ось як я вирішую проблему:
Клацніть правою кнопкою миші проект на Explorer Explorer -> Властивості -> Шлях збірки Java -> Бібліотеки -> Я бачу помилку (перехресний знак) у системній бібліотеці JRE. Тому що шлях неможливо знайти. -> Двічі клацніть системну бібліотеку JRE -> Оберіть опцію "Робоча область за замовчуванням JRE" -> Готово -> ОК. -> БУМ ТОЙ РОБОТИ
FYI.
У моєму випадку це було результатом мого додавання нової залежності до мого pom.xmlфайлу.
Нова залежність залежала від старої версії бібліотеки (2.5). Цю ж бібліотеку вимагала інша бібліотека в моєму pom.xml, але вона вимагала версії 3.0.
Чомусь, коли Мейвен стикається з цими конфліктами, він просто опускає останню версію. У програмі Eclipse під час перегляду pom.xmlви можете вибрати вкладку "Ієрархія залежності" внизу, щоб побачити, як вирішуються залежності. Тут ви дізнаєтесь, чи не було цієї бібліотеки (і, таким чином, класу) пропущено з цієї причини.
У моєму випадку це було так само просто, як заблокувати нову версію. Це можна зробити, клацнувши правою кнопкою миші запис - є можливість заблокувати її в контекстному меню.
Наведіть JRE на шляху побудови до JDK. Це працювало для мене.