Затмение: заявленный пакет не соответствует ожидаемому пакету - PullRequest
79 голосов
/ 02 октября 2011

У меня проблема с импортом внешнего проекта.Я захожу Файл -> Импорт ... -> Существующие проекты в рабочую область, выбираю папку, в которой находится проект, и все импортируется - но имена пакетов проекта, похоже, не соответствуют ожиданиям Eclipse.Все имена пакетов имеют префикс:

prefix.packagename1
prefix.packagename2

и т. Д.

Но Eclipse ожидает

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

и т. Д.потому что каталог src / prefix1 / prefix / package1

Я действительно не хочу возиться с внешним кодом.Как мне сказать Eclipse игнорировать каталог "src / prefix1"?Или что еще я могу сделать?

Ответы [ 11 ]

96 голосов
/ 02 октября 2011

Просто зайдите в путь сборки и измените исходный путь на src/prefix1 вместо src.

. Возможно, проще всего щелкнуть правой кнопкой мыши по каталогу src и выбрать «Путь сборки»./ Удалить из пути сборки ", затем найдите каталог src/prefix1, щелкните его правой кнопкой мыши и выберите" Путь сборки / Использовать как исходную папку ".

62 голосов
/ 18 января 2013

Я только что столкнулся с этой проблемой, и, поскольку решение мистера Скита не помогло мне, я поделюсь с вами, как я решил эту проблему.

Оказывается, я открыл java-файл в разделе 'src', прежде чем объявить его исходным каталогом.

После щелчка правой кнопкой мыши на каталоге 'src' в eclipse, выберите 'путь сборки', а затем 'Использовать как исходную папку'

Закрыть и снова открыть уже открытый Java-файл (обновление F5 не помогло).

Указанный путь к файлу java от «prefix1» и далее совпадает с пакетом в файле (пример из запроса запрашивающего prefix1.prefix.packagename2). Это должно работать

Затмение больше не должно жаловаться на 'src.'

10 голосов
/ 19 ноября 2012

Переместите вашу проблему * .java файлы в другую папку.

Щелкните элемент 'src' и нажмите «F5».

Красные крестики исчезнут.

Верните свой* .java файлы в «путь к пакету», щелкните пункт «src» и нажмите «F5».

Все должно быть в порядке.

2 голосов
/ 02 сентября 2013

Если вы импортировали существующий проект, просто удалите исходные папки, а затем добавьте их снова, чтобы построить путь, и перезапустите eclipse.В большинстве случаев Eclipse будет показывать ошибку до тех пор, пока вы не перезапустите.

1 голос
/ 30 декабря 2016

Происходит для меня после неудачной сборки вне среды IDE. Если очистка вашего рабочего пространства не работает, попробуйте: 1) удалить все проекты 2) закрыть и перезапустить STS / eclipse, 3) повторно импортировать проекты

0 голосов
/ 20 декабря 2017

У меня случилась такая же проблема только сейчас. Однако первые несколько ответов не работают для меня. Я предлагаю решение: измените файл .classpath . Например, вы можете определить путь classpathentry узла следующим образом: path = "SRC / prefix1 / Java" или путь = "src / prefix1 / resources". Надеюсь, это поможет.

0 голосов
/ 25 августа 2017

Единственное, что сработало для меня, это удаление проекта и его повторный импорт.Работает как шарм:)

0 голосов
/ 15 июня 2016

Перейдите в папку src проекта и скопируйте весь код из нее во временную папку и постройте проект. А теперь скопируйте фактический код из временного местоположения в проект src. И снова запустите сборку. Проблема будет решена.

Примечание: это характерно для затмения.

0 голосов
/ 30 января 2016
  1. Щелкните правой кнопкой мыши по внешней папке, в которой находится пакет
src.prefix1.prefix.packagename1 
src.prefix1.prefix.packagename2
  1. Нажмите Путь сборки -> Удалить из пути сборки.

  2. Теперь перейдите к префиксу папки1 в разделе папки вашего проекта.

  3. Щелкните правой кнопкой мыши по нему -> Путь сборки -> Использовать как исходную папку.

  4. Готово. Папка пакета теперь не будет отображать никаких ошибок. Если он все еще отображается, просто перезапустите проект.

0 голосов
/ 22 декабря 2014

Эта проблема иногда возникает в Eclipse при импорте проекта Android, в котором нет файла .classpath. То, что создает Eclipse, не совсем то, что ожидает Android. Но файлы Android .classpath обычно являются относительными, поэтому я просто копирую правильный файл .classpath из другого проекта поверх неправильного .classpath. Я создал видео, которое показывает, как я это делаю: https://www.youtube.com/watch?v=IVIhgeahS1Ynto

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...