Я получил ошибку в 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.
Похоже, это была известная проблема (ошибка 67414), которая была решена в 3.0 ... кто-то заметил, что это происходит и для них в 3.4.
В то же время, обходной путь заключается в том, чтобы удалить системную библиотеку JRE из проекта, а затем снова добавить ее.
Here are the steps:
Перейти к свойствам проекта с ошибкой сборки (щелкните правой кнопкой мыши> Свойства)
Откройте вкладку «Библиотеки» в разделе «Путь сборки»
Найдите «Системную библиотеку JRE» в списке (если она отсутствует, то это сообщение об ошибке - не ошибка затмения, а неправильно настроенный проект)
Удалите «Системную библиотеку JRE»
Нажмите «Добавить библиотеку ...», выберите «Системная библиотека JRE» и добавьте соответствующий JRE для проекта (например, «JRE рабочей области по умолчанию»)
Нажмите «Готово» в выделении библиотеки и «ОК» в свойствах проекта, а затем дождитесь повторной сборки проекта.
Надеюсь, ошибка будет решена ...
Эта ошибка возникает, когда классы в файле jar не имеют ту же структуру, что и структура папок jar.
Например, если у вашего файла классов есть пакет com.test.exam, а у файла classes.jar, созданного из этого файла классов, есть структура test.exam ... будет выдано сообщение об ошибке. Вам нужно исправить структуру пакета вашего classes.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 Home Edition)
Это сработало, НО проблема возвращается каждые несколько дней. Я делаю то же, что и выше, и это решает и позволяет мне развиваться.
В дополнение к уже предложенной причине пропуска файла класса эта ошибка также может указывать на дубликат файла класса, 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, эта ошибка произошла.
Вот как я решаю проблему:
Щелкните правой кнопкой мыши мой проект в Package Explorer -> Properties -> Java Build Path -> Libraries -> Я вижу ошибку (Cross Sign) в системной библиотеке JRE. Потому что путь не может быть найден. -> Дважды щелкните Системная библиотека JRE -> Выберите опцию «JRE по умолчанию для рабочей области» -> Готово -> ОК. -> БУМ, ЭТО РАБОТАЕТ
FYI.
В моем случае это было результатом моего добавления новой зависимости к моему pom.xml
файлу.
Новая зависимость зависела от старой версии библиотеки (2.5). Та же самая библиотека требовалась другой моей библиотекой pom.xml
, но для нее требовалась версия 3.0.
По какой-то причине, когда Maven сталкивается с этими конфликтами, он просто пропускает самую последнюю версию. В Eclipse при просмотре pom.xml
вы можете выбрать вкладку «Иерархия зависимостей» внизу, чтобы увидеть, как разрешаются зависимости. Здесь вы найдете, не была ли данная библиотека (и, следовательно, класс) рассматриваемой по этой причине.
В моем случае это было так же просто, как заблокировать новую версию. Вы можете сделать это, щелкнув правой кнопкой мыши на записи - в контекстном меню есть возможность заблокировать ее.
Укажите JRE в пути сборки на JDK. Это сработало для меня.