Получение "не может найти символ" в Java-проекте в Intellij

Я вызываю этот вызов в статический экземпляр singleton из класса GameManager.java.

HUD.getInstance().update(timeDelta);

HUD.java содержит класс HUD, а также два других связанных класса, HUDTextElement и HUDElement. Все классы находятся в одном корневом пути. /src/org/mypackage

Однако при компиляции этого java-проекта в IntelliJ я получаю "не могу найти Symbol HUD" в строке, в которой я вызываю вызов HUD.getInstance().

Этот точно такой же код компилируется просто отлично в eclipse, любая идея, в чем проблема?

Ответ 1

Выберите Build-> Rebuild Project решит его

Ответ 2

У меня была такая же проблема, и, оказывается, я никогда не полностью составлял новый проект. Таким образом, щелчок правой кнопкой мыши и выбор компиляции '' (shift-cmd-F9 на mac) исправили его. Кажется, что компиляция при сохранении не "видит" не скомпилированные файлы.

Маркировка папки src в качестве источника не помогла в моем случае.

Ответ 3

У меня была та же проблема и исправлена ее, нажав "Файл"> "Недействить кеши/перезапуск"

Ответ 4

Скорее всего, ваша папка.. /src не будет помечена как "исходная" папка в Intellij IDEA, поэтому она не знает, где искать ваш класс. Вы можете щелкнуть правой кнопкой мыши по папке в проводнике проекта и выбрать "отметить как исходную папку", чтобы исправить это.

Ответ 5

Я получал ту же ошибку "не могу найти символ", когда создавал Build → Make Project. Я исправил это, удалив мою папку Maven /target, щелкнув правой кнопкой мыши мой модуль проекта и выполнив Maven → Reimport и выполнив Build → Rebuild Project. Это было на IntelliJ Idea 13.1.5.

Оказывается, Maven → Reimport был ключевым, так как проблема возникла несколько раз, прежде чем я, наконец, это сделал.

Ответ 6

Спасибо за помощь до сих пор, выясняется, что исправление заключалось в том, чтобы сначала скомпилировать HUD.java (щелкните правой кнопкой мыши по file-> Compile HUD.java). После компиляции java файла остальная часть проекта может быть скомпилирована без каких-либо проблем.

Я не знаю, почему это исправлено, или почему IntelliJ не сделает это автоматически, но ошибка в корне кажется, что это связано с тем, что IntelliJ неправильно обрабатывает несколько классов в одном файле.java.

Ответ 7

Я использую maven в своем проекте. По какой-то причине IntelliJ давал мне такие жуткие ошибки. Я бежал mvn clean и попробовал повторную синхронизацию, и эти ошибки исчезли.

Ответ 8

Мне пришлось щелкнуть правой кнопкой мыши по проекту и выбрать "Reimport" в подменю "Run Maven".

Ответ 9

Я знаю, что это старый вопрос, но по моему недавнему опыту это происходит потому, что ресурсы сборки либо удалены, либо Idea не может распознать их как источник.

Там, где появляется ошибка, укажите источники для папки /directory, и эта ошибка должна быть разрешена.

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

После этого рекомендуется выполнить чистую установку.

Ответ 10

перекомпиляция основного класса Application.java сделала это для меня, щелкните правой кнопкой мыши на классе> Перекомпилировать

Ответ 11

Так как это первый хит в Google, который ищет ошибку "intelliJ не может найти символ", я тоже хочу использовать свое решение.

Проблема для меня заключалась в том, что мой проект возник из Eclipse, а некоторые файлы содержали зависимость от классов, которые были сгенерированы в src/generated-sources по спецификациям в pom.xml. По какой-то причине это не было выполнено должным образом, когда я впервые открыл проект, и восстановление/повторный импорт не помогло, поэтому файлы никогда не создавались.

Решение состояло в том, чтобы щелкнуть правой кнопкой мыши по модулю и выбрать Maven → Generate Sources and Update Folders Это решило проблему, и я мог бы скомпилировать ее.

Ответ 12

Убедитесь, что исходный файл класса java, к которому вы пытаетесь обратиться, имеет расширение .java. Это было .aj в моем случае (я должен был нажать "Создать аспект" вместо "Создать класс" при его создании). IntelliJ показывает тот же значок для этого файла, что и для "нормального" класса, но компилятор не видит его при создании.

Изменение .aj на .java исправило это в моем случае.

Ответ 13

Иногда класс, который вы хотите, находится в исходном каталоге test. Случилось со мной, так или иначе...

Ответ 14

У меня тоже была такая же проблема. Что для меня решило, так это то, что я удалил выходную папку (в моем случае) и построил проект. Это устранило проблему.

Ответ 15

У меня была та же проблема, за исключением того, что я импортировал классы, для которых зависимости не разрешались каким-либо образом. Я обновил Maven проектов, Rebuild Project. Это все еще не решило. Похоже, что IntelliJ что-то неправильно кешировал. Я перезапустил IntelliJ, и это разрешило зависимости. Я думаю, это очистило кеш как-то.

Ответ 16

В моем случае проблема заключалась в использовании экспериментальной функции Lombok @UtilityClass в моем Java-проекте в Intellij Idea для аннотирования методов класса как "статических". Когда я явно сделал каждый метод класса "статическим" вместо использования аннотации, все проблемы компиляции исчезли.

Ответ 17

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

$ mvn clean install -Dmaven.test.skip=true

А на IntelliJ делай CMD + Shift + A (mac os) → типа "Переимпортируй все проекты Maven".

Если это не сработает, попробуйте принудительно загрузить зависимости maven.

$ mvn clean -U install -Dmaven.test.skip=true

Ответ 18

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