Ошибка Eclipse: косвенно ссылается на требуемые файлы .class?

В Eclipse появилась ошибка. Что означает это сообщение об ошибке:

The type iglu.ir.TermVector cannot be resolved. It is indirectly referenced from required .class files

Ответ 1

Это означает: "Для используемого класса нужен другой класс, который не находится в пути к классам". Вы должны убедиться (как предлагает Гарри Джой), чтобы добавить требуемую банку в путь к классам.

Ответ 2

Это похоже на то, что Eclipse запутался, поскольку это фактическая ошибка. Я проигнорировал эту ошибку и запустил веб-службу, чья endpointInterface она жаловалась, и она работала нормально, за исключением того, что приходилось иметь дело с диалогом каждый раз, когда я хотел его запустить. Еще одна непрозрачная ошибка, которая ничего мне не говорит.

Ответ 3

Иногда это происходит со мной, я всегда исправлял это с помощью команды "mvn eclipse: clean" для очистки старых свойств, а затем запускал mvn eclipse: eclipse -Dwtpversion = 2.0 (для веб-проекта, конечно). Есть несколько старых свойств, которые сохраняются, поэтому затмение иногда путается.

Ответ 4

Эта ошибка возникает, когда классы в файле jar не соответствуют той же структуре, что и структура папок jar.

например. если у вас в классе файл есть пакет com.test.exam, а class.jar, созданный из этого файла класса, имеет структуру test.exam... ошибка будет выбрана. Вам нужно исправить структуру пакета вашего класса .jar, а затем включить его в путь сборки ecplipse...

Ответ 5

Похоже, что это была известная проблема (ошибка 67414), которая была разрешена в версии 3.0... кто-то прокомментировал, что это происходит и для них в версии 3.4.

В то же время работа вокруг заключается в том, чтобы удалить Системную библиотеку JRE из проекта, а затем снова добавить ее.

Here are the steps:

Перейдите к свойствам проекта с ошибкой сборки (щелкните правой кнопкой мыши > Свойства)

Перейдите на вкладку "Библиотеки" в разделе "Путь сборки"

Найдите в списке "Системную библиотеку JRE" (если этого не хватает, это сообщение об ошибке не является ошибкой затмения, а неправильно сконфигурированным проектом)

Удалите "Системную библиотеку JRE"

Нажмите "Добавить библиотеку...", выберите "JRE System Library" и добавьте соответствующую JRE для проекта (например, "Рабочая область по умолчанию JRE" )

Нажмите "Готово" в выборе библиотеки и "ОК" в свойствах проекта, а затем дождитесь повторной сборки проекта

Мы надеемся, что ошибка будет решена...

Ответ 6

Если вы все еще не можете найти что-то не так с вашей настройкой, вы можете попробовать Project → Clean и очистить все проекты в рабочей области.

EDIT: Извините, не видел предложения verbose_mode... то же самое

Ответ 7

Я получил это исключение, потому что eclipse работал в другой версии jdk, просто изменился на правильный, чистый и сработал и работает!

Ответ 8

Для меня это происходит, когда я обновляю свой jdk до 1.8.0_60 с помощью старого набора баннеров, который использовался в течение длительного времени. Если я вернусь к jdk1.7.0_25, все эти проблемы исчезнут. Кажется, проблема совместимости между JRE и библиотеками.

Ответ 9

У меня была эта ошибка из-за поврежденного локального репозитория maven.

Итак, чтобы исправить эту проблему, все, что мне нужно было сделать, это зайти в мой репозиторий и удалить папку, в которой был указан соответствующий .jar, а затем принудительно выполнить update maven в Eclipse.

Ответ 10

У меня возникла ошибка, когда я просто изменяю некоторые настройки svn и ничего в коде. Исправлена ​​ошибка при очистке проектов.

Ответ 11

В моем случае я создал проект и сделал его 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.

Ответ 12

Быстро и просто я исправил его таким образом (я использую версию ADT: v21.0.0-531062 в домашней версии Windows XP)

  • Открытый файл манифеста.
  • Изменен существующий проект minSdkVersion на то же значение, что и maxSdkVersion (советуем: может быть полезно создать новый проект и посмотреть, что это такое maxSdkVersion)
  • Сохранить файл манифеста.
  • Щелкните правой кнопкой мыши проект и выберите "Построить проект".
  • Из верхнего меню: Project - Clean.. - проверьте только соответствующий проект, ниже, который я проверил. Запустите сборку сразу и создайте только выбранные проекты и нажмите OK.
  • откройте java файл - НИКАКИЕ красные ошибки больше!
  • Возврат к шагу 1 выше и изменение Back minSdkVersion к нему Исходное значение (для того, чтобы как можно больше версии Android).

Он работал, но проблема возвращается каждые несколько дней. Я делаю то же, что и выше, и он решает и позволяет мне развиваться.

Ответ 13

В дополнение к уже предложенной причине отсутствия файла класса эта ошибка также может указывать на дубликат файла класса, eclipse сообщает об этой ошибке, когда файл класса на пути сборки использует другой класс, который имеет несколько определений в пути сборки.

Ответ 14

Поскольку вы даете нам очень мало деталей, скорее всего, то, что вы сделали, что невероятно легко сделать, заключается в том, что вместо заголовка

Build Path > Configure Build Path > Projects

и добавив дополнительную папку проекта, вместо этого вы отправились в

Build Path > Configure Build Path > Libraries

и вместо этого добавил вашу папку проекта.

Это наиболее определенно, если ваш код все правильно, но после автоматической реорганизации импорта с помощью ctrl+space ярлыка вместо ваших операторов импорта, ссылающихся на com.your.additionalproject, ваши ссылки все указывают на bin.com. your.additionalproject.

Обратите внимание на корзину. Это означает, что вы косвенно ссылаетесь на свой класс, рассматривая вашу структуру папок другого проекта как библиотеку, что делает вашу среду IDE делать все wokr для поиска точно двоичного класса, на который вы ссылаетесь.

Чтобы исправить это, удалите папку из Библиотеки и вместо этого добавьте ее на вкладке "Проекты" и реорганизуйте свой импорт. Ваш проект должен работать нормально.

Ответ 15

Когда я использую новую версию eclipse и пытаюсь использовать предыдущее рабочее пространство, которое я использовал со старой версией eclipse, эта ошибка возникла.

Вот как я решаю проблему:

Щелкните правой кнопкой мыши мой проект в Проводнике пакетов → Свойства → Путь сборки Java → Библиотеки → Я вижу ошибку (Cross Sign) в JRE System Library. Потому что путь не найден. → Дважды щелкните Системную библиотеку JRE → Выберите параметр "Рабочая область по умолчанию JRE" → Готово → ОК. → БУМ ЭТО РАБОТАЕТ

FYI.

Ответ 16

Это случилось со мной из-за транзитивных зависимостей в моих баночках

Ответ 17

В моем случае это было результатом добавления новой зависимости к моему файлу pom.xml.

Новая зависимость зависела от старой версии библиотеки (2.5). Эта же библиотека потребовалась другой библиотекой в ​​моем pom.xml, но для нее потребовалась версия 3.0.

По какой-то причине, когда Maven сталкивается с этими конфликтами, он просто пропускает самую последнюю версию. В Eclipse при просмотре pom.xml вы можете выбрать вкладку "Иерархия зависимостей" внизу, чтобы увидеть, как разрешаются зависимости. Здесь вы обнаружите, что библиотека (и, следовательно, класс), о которой идет речь, была опущена по этой причине.

В моем случае это было так же просто, как заблокировать более новую версию. Вы можете сделать это, щелкнув правой кнопкой мыши запись - есть возможность заблокировать ее в контекстном меню.