Ответ 1
вы можете попробовать недействить кеш и перезапустить intellij, во многих случаях это поможет.
Файл → Недействительный кеш/перезагрузка
Эта проблема периодически возникает для разных библиотек и разных проектов. При попытке импортировать библиотеку пакет будет распознан, но имя класса не может быть разрешено.
Если в инструкции import я right-click -> Goto -> the package declaration
, я вижу все декомпилированные классы, отображаемые в боковой панели - включая те, которые мне нужны -
Если я попытаюсь автоматически заполнить инструкцию import, я заметил, что класс, в котором я нуждаюсь, не отображается в раскрывающемся списке.
Я уже пытался сделать недействительными кеши, не работает. Я не могу найти никаких конфликтов классов - в моем пути к классам нет другого файла jar с тем же именем пакета. Я могу импортировать этот класс в другие проекты.
Пожалуйста, просмотрите снимки экрана:
У кого есть ключ?
вы можете попробовать недействить кеш и перезапустить intellij, во многих случаях это поможет.
Файл → Недействительный кеш/перезагрузка
Это может быть несколько причин. В моем случае это была неправильная проблема с исходным корнем. Недействительные кеши не работали вместе с другими решениями.
Проверьте исходные корни модуля.
Структура проекта (Ctrl + Alt + Shift + S).
Модули
Выберите свой проблемный модуль.
Вкладка "Изменить" в верхней части окна "Источники".
Удалите ненужные корни источника. Сохраните его и добавьте корни src и test в этот корень.
Проверьте зависимости вашего модуля.
Я столкнулся с подобной проблемой, комментарий Майка помог мне двигаться в направлении ее решения.
Хотя необходимая библиотека также была частью модуля в моем проекте, для этого потребовалась смена области. В зависимости от модуля я изменил область на Компилировать ", а не Тест", и теперь он отлично подходит для меня.
IntelliJ имеет проблемы в разрешении зависимостей. Попробуйте следующее:
File → Invalidate Caches/Restart или перестройка проекта не работали со мной.
Для моего проекта Gradle работал "Обновить все проекты Gradle" на вкладке "Gradle" в верхнем правом углу IntelliJ v2017, используя желтую отмеченную кнопку, показанную ниже:
Я нашел следующий ответ @jossef-harush и @matt-leidholm полезный из другой ссылки
Integer
) и нажмите ALT + ENTER (или щелкните значок лампочки)Setup JDK
из меню намерений
Configure
JDK
был неправильным (указывался на /opt/jdk1.7.0_51
вместо /opt/jdk1.7.0_65
)
JDK
путь
File → Invalidate Caches/Restart А также Создай свой проект
Щелкните правой кнопкой мыши по файлу pom.xml, перейдите в Maven, щелкните Reimport. У меня была похожая проблема, и это сработало для меня.
Я попытался сделать недействительным кеши и перезагрузился, но единственное, что сработало для меня, - полностью уничтожить каталог .idea, а затем создать новый проект с нуля.
Я также получил эту ошибку несколько раз, когда я пытаюсь создать новый проект java.
Ниже приведен шаг, как я получил эту глупую проблему.
src/main/java
.net.gongmingqm10.sketch
.gradle wrapper
, gradle idea
для создания материала gradle для проекта.build.gradle
и gradle build
, reimport проект.User.java
и School.java
в существующем пакете net.gongmingqm10.sketch
Решение:
Сначала создайте проект и пометьте основной /java как исходный корень. Создать новый каталог с тем же именем net.gongmingqm10.sketch
. Переместите все файлы из старых проблемных пакетов в новый пакет.
Корневая причина:
Дерево каталогов исходного кода
Как вы можете видеть из дерева. Я получил каталог с именем net.gongmingqm10.sketch
. Но нам действительно нужен каталог с тремя уровнями: net- > gongmingqm10- > sketch
Но прежде чем завершить проект в Intellij, я создаю новый каталог с именем net.gongmingqm19.sketch
, который даст мне реальный каталог с именем net.gongmingqm10.sketch
.
Когда мы пытаемся импортировать его. Очевидно, как можно импортировать файл под вэлементным каталогом с именем a.b.c
.
@Антон Дозорцев Меня смутило подобное поведение; Я закончил переустановку IDE кучей раз, только пропустив проблему после удаления приложения IDEA, всех кешей, настроек и т.д.
Я пробовал всевозможные шаги в промежуточный период (например, перезапуска, недействительности, удаления файлов .idea
и *.iml
и т.д.)
Оказывается, проблема связана с установкой IntelliJ idea.max.intellisense.filesize
. Я установил его на 100 КБ, что было меньше размера моей зависимости, что привело к тому, что IntelliJ показала его как неизвестную, как на скриншоте.
Fix:
Нажмите "Справка" → "Редактировать пользовательские свойства"
Установите свойство в большее значение; по умолчанию - 2500 КБ
idea.max.intellisense.filesize=2500
У меня была такая же проблема, пока я не заметил, что папка src была помечена как корневой источник вместо java!
Переход на java (src/main/java) в качестве исходного корня решил мою проблему
Запустите эту команду в консоли проекта:
mvn idea:idea
Готово. Был этот вопрос много раз. Попробовал 'Invalidate Cache & Перезапустите и все другие решения. Выполнение этой команды прекрасно работает для меня. В настоящее время я использую IntelliJ 2019.2, но это также происходило в предыдущих версиях, и решение работало также.
Простой перезапуск работал у меня.
Я бы предложил сначала попробовать с перезагрузкой, а затем вы можете выбрать недействительность кэша.
PS: Очистка системных кэшей приведет к очистке локальной истории.
У меня была аналогичная проблема с моим импортированным проектом Maven. В одном модуле он не может разрешить импорт символа для части другого модуля (да, часть этого модуля может быть разрешена).
Я изменил "домашний каталог Maven" на более новую версию, решив мою проблему.
Обновление: хорошо в течение 1 часа, вернуться к нарушенному статусу...
Я нашел причину источника!
В моем случае я добавляю файл jar, включающий в себя некоторый исходный файл java, но я думаю, что источник java плохой, в библиотеке зависимостей Intellij Idea он добавляет источник автоматически, поэтому в редакторе импортируется BAD, просто удалите источник код в "Структура проекта" → "Библиотека", он работает для меня.
Что мне нужно - отредактировать файл пакета в папке .idea, поскольку я случайно добавил источники в эту библиотеку jar, и андроид не смог его устранить, удалив строку источников, помеченную в изображении b/m ошибка библиотеки.
Затем перестройте проблему gradle и bam.
У меня была такая же проблема, и причина этого была неправильной маркировкой источников проекта.
Я вручную создал корневой контент и не заметил, что папка src/main/test
была помечена как Sources
вместо Tests
. Поэтому мы предположили, что у моих тестовых классов есть все свои тестовые библиотеки (JUnit
, Mockito
и т.д.) С объемом компиляции, а не с тестом.
Как только я обозначил src/main/test
как "Тесты" и перестроил модуль, все ошибки исчезли.
У меня было это недавно, когда я пытался использовать Intellij для работы над NiFi, оказалось, что проблема в том, что NiFi требует Maven> = 3.1.0, а версия, с которой я проверил (думаю, по умолчанию), была 3.0.5. Обновление версии Maven для проекта исправило это, поэтому в некоторых случаях может показаться неправильное выравнивание версии Maven... Я думаю, это довольно необычно, но если вы зайдете так далеко в потоке, вы, вероятно, получите необычная проблема :)
Та же проблема. Если эти методы не работают. Вы можете попытаться удалить библиотеку из локального репозитория maven и снова импортировать ее в pom.
Наконец, это хорошо для меня.
file
→ Project Structure
→ Modules
, найдите модуль с проблемами, щелкните его и выберите вкладку Dependencies
с правой стороны. Нажмите на зеленый знак плюс, попробуйте добавить банку или библиотеки, которые вызывают проблему. Это подходит для меня.
После долгих поисков я обнаружил, что зависимость была как-то повреждена на моей машине в проекте maven. Странно было то, что в скомпилированном Java-коде зависимость все еще работала правильно. Однако когда я очистил и перестроил кэш зависимостей maven, проблема исчезла, и IntelliJ узнал пакет. Вы можете сделать это, запустив:
mvn dependency:purge-local-repository
Интересно, что источником моей проблемы, следовательно, был не IntelliJ, а сам Maven.
Пожалуйста, попробуйте File-> Синхронизировать. Затем закройте и снова откройте IntelliJ, прежде чем лишить законной силы.
Однажды я перезапустил. Я бы сделал недействительным, но синхронизация очистил все после перезапуска.
Отсутствует io
? Попробуйте import org.openide.util.io.ImageUtilities
.