Неразрешенная ссылка Kotlin в IntelliJ

93

Я начал с учебника по изучению Kotlin на. IntelliJКогда я попытался запустить пример, т.е.

fun main(args: Array<String>) {
 println("lol")
}

Выполнение приостанавливается с этим сообщением. Error:(5, 5) Kotlin: Unresolved reference: println Я впервые использую IntelliJ. Я тоже никогда не работал над Javaпроектами. Я что-то упускаю?

Изменить: я уже видел другой вопрос. Ответ недействителен для моей ситуации.

Анони-мышь
источник
Версия Intellij IDEA? Какая версия плагина Kotlin установлена?
D3xter
Какой вариант вы выбрали в диалоговом окне выполнения Kotlin?
yole
Я только вчера установил его.
IDEA
Да, я тоже получаю это на примере «Hello world» с использованием Gradle и Netbeans. Сборка gradle работает. У меня тоже проблема с подключением к Netbeans. Увы, недавних обновлений для подключаемого модуля Netbeans нет
будет

Ответы:

92

Ваш плагин Intellij IDEA и исполняющая среда / компилятор Kotlin, которые вы используете в проекте, должны совпадать. Например, если плагин IDE является Beta 1, но ваш проект Gradle / Maven использует M12, у вас будут проблемы точно так, как вы описали. Так что проверьте, все ли выровнено.

Если у вас все еще есть проблемы, с некоторыми более старыми плагинами вам необходимо очистить кеши в Intellij IDEA (меню файла, Очистить кеши и перезапустить, выберите вариант перезапуска).

Джейсон Минард
источник
Комбинация очистки кешей, обновления студии Android и плагина kotlin исправила это для меня. Спасибо
user1405990
Привет еще раз, с некоторого времени , чтобы рассмотреть вещи и немного Котлин Google-ков - я не думаю , что причина здесь в плагин-s само по себе . println находится в пакете kotlin.io . JAR-файл Kotlin-stdlib содержит "kotlin.io". Так что никаких проблем на поверхности. Я явно включен kotlin.io * - результат.: Unresolved reference: io. Как архив JAR, справочное разрешение должно быть детским садиком. Ну что, как поживаешь!??
будет
Я вернулся ... Люди Netbeans также могут «исправить» это - сбросить кеш пользователя netbeans. Вы можете увидеть расположение каталога кэша Netbeans, щелкнув поле Help / About. Очистить - Остановить Netbeans - Удалить кеш - перезапустить Netbeans - перестроить! Воля .
будет
Если вы видите эту проблему только в своем файле сборки Gradle, но не в исходных файлах проекта, это может помочь: Discussion.kotlinlang.org/t/…
AlexO
25

Если кто -то натыкается это и НИ Invalidate Cache или Update Kotlin's Versionработы:

1) Во-первых, убедитесь, что вы можете собрать его вне среды IDE. Если вы используете gradle, например:

gradle clean build

Если все идет хорошо, значит, с вашей средой можно работать Kotlin.

2) Чтобы исправить сборку IDE, попробуйте следующее :

Структура проекта -> {Выбрать модуль} -> Котлин -> FIX

Как предложил член JetBrain здесь: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

Vinitius
источник
13
Я использую Android Studio. У меня нет опции «Котлин» в структуре моего проекта> модули. Любые идеи?
AutonomousApps
4
даже не видя эту опцию kotlin после выбора модулей ... с использованием корпоративного intellij, а kotlin, по-видимому, уже настроен, когда я нажимаю tools -> kotlin -> configure
heug
23

В моем случае это был неправильно настроенный экземпляр IntelliJ.

Структура проекта -> SDK -> Удалить и снова добавить Java SDK

Мартин Колл
источник
Это была моя проблема после удаления OpenJDK и установки Oracle JDK. Спасибо.
Патрик Стас
Это решило мою проблему с IntelliJ 2019.3 и OpenJDK 11. Мне просто пришлось удалить и снова добавить SDK.
z11i
10

Пробежался по этому вопросу. Мне пришлось добавить в свой build.grade следующее:

apply plugin: 'kotlin-android'

Ник
источник
8

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

введите описание изображения здесь

Мой проект (на момент написания этого) - это проект gradle 4.10.2 kotlin 1.3 в IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, построенный 16 октября 2018 г.)

Для начала я отключил кеши и перезапустил их. Затем запустил чистую сборку gradle. После восстановления проекта все равно радости нет. Я зашел в настройки проекта и заметил, что версии компилятора не были установлены на java 8, я установил для Compiler / Kotlin / Target JVM Version и Compiler / Java / Project Byte Code значение 1.8 / 8 (см. Ниже), затем провел несколько тестов в IDE, и мы снова в деле! Ссылки разрешены в моем случае.

введите описание изображения здесь

введите описание изображения здесь

Открыт
источник
У меня была аналогичная проблема, но мне также пришлось изменить мои модули модулей на правильную целевую версию JVM
Джейк Уолш,
4

Для меня это произошло из-за того, что в структуре проекта отсутствовали библиотеки Gradle.

Просто добавьте build.gradle: apply plugin: 'idea'

А затем запустите: $ gradle idea

После этого gradle перестраивает библиотеки зависимостей, и ссылки распознаются!

R Lu
источник
Этому помогли и сработали из-за отсутствия библиотек gradle
Kaushik Burkule
3

Возможным решением для автономных проектов Kotlin является включение стандартных библиотек Kotlin прямо в корневой проект.

Для этого в IntelliJ IDEA:

  • нажмите Ctrl + Shift + A (действия или параметры поиска)
  • введите "Настроить kotlin в проекте" и позвольте ему включать стандартные библиотеки для вас
Антонио Мартинович
источник
3

Моя проблема была решена добавлением kotlinследующего

презентация.gradle (app.gradle)

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android' // here

apply plugin: 'kotlin-android-extensions' // and here

android {
    ...
}

dependencies {
    ...
}

domain.gradle (чистый котлин)

Моя ошибка была здесь, потому что Android Studio создает мой модуль домена как чистый модуль Java и применяет плагин как java, и я использовал его в своем модуле презентации, который является модулем Android / Kotlin

Android Studio находит и импортирует путь к пакету, но несовместимость не позволяет выполнить сборку.

Просто удалите apply plugin: 'java'и переключитесь на котлин, как показано ниже

apply plugin: 'kotlin' // here is

dependencies {
    ...
}

...

data.gradle

apply plugin: 'com.android.library'

apply plugin: 'kotlin-android' // here

apply plugin: 'kotlin-android-extensions' // and here 

android {
    ...
}

dependencies {
    ..
}

Думаю, это будет полезно

Абнер Эскосио
источник
1

Было то же самое с IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin получает свою собственную запись в списке (например, Java) при создании нового проекта, но единственная рабочая конфигурация была:

New | Проект | Java | «Kotlin (Java)» (убедитесь, что у вас также настроен Project SDK)
используйте библиотеку: Create, «Copy to: lib».

каай
источник
1

Я пробовал все: очистить папки сборки, запустить gradle clean build, выполнить AS invalidate cache (x2), переустановить плагин Kotlin, перезагрузить компьютер.

Но, в конце концов, после всего этого это все еще не сработало, но также удалили из проекта build.gradleэту строку:, apply plugin: 'kotlin-android-extensions'gradle sync, а затем повторное добавление сработало

Ultimo_m
источник
1

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

  1. Перезапустите свою версию сообщества intellij idea.
  2. После этого перейдите в правый угол, чтобы установить конфигурацию для java.

введите описание изображения здесь

  1. выберите настройку конфигурации для всего модуля. затем повторно запустите код. Это будет работать.

Эта ошибка возникает из-за неправильной настройки java.

Савигья Сингх
источник
2
Мне очень жаль, но 2. неясно. Я не смог найти «правый угол»
Деунц
1

Иногда это может произойти из-за того, что вы пытаетесь использовать проект с несовместимыми версиями плагина Kotlin в Gradle с плагином в своей среде IDE. Проверьте версии org.jetbrains.kotlin.jvm и других плагинов Kotlin в build.gradle, а также версию установленного плагина kotlin в вашей среде IDE и попробуйте сделать его похожим:

введите описание изображения здесь

введите описание изображения здесь

Аркадий
источник
0

Со мной случилось сегодня.

Моя проблема заключалась в том, что у меня было открыто слишком много вкладок (я не знал, что они открыты) с исходным кодом на них.

Если вы закроете все вкладки, возможно, вы разберетесь с IntelliJ для правильной индексации зависимостей.

ЛевКолман
источник
На самом деле это имеет смысл, причина, по которой вы получаете балл -ng, заключается в том, что вы плохо это объяснили. Если у some1 есть два открытых проекта в IDE, скажем, один с Gradle и один с Maven; запуск одного из проектов может привести к неразрешенной ссылке.
HA S
0

Аннулирование кешей и обновление плагина Kotlin в Android Studio помогли мне.

Андре Рамон
источник
0

У меня возникла эта проблема, потому что я пытался настроить конфигурации многоплатформенной библиотеки.

Я удалил все исходные наборы с их зависимостями из файла "build.gradle", но сохранил "общий" исходный набор.

Native работал нормально, но JVM не смогла построить и показала вашу ошибку.

В конце концов, решение заключалось в том, чтобы не удалять исходный набор JVM и его зависимости.

Алаа Сбатин
источник
0

Еще я хотел бы добавить, что вам нужно выбрать View -> Tool Windows -> Gradle, прежде чем вы сможете запустить проект с помощью Gradle.

Если при использовании Gradle проект строится и работает нормально, а при использовании IntelliJ - нет, это может решить проблему.

Jairhumberto
источник
0

У меня возникла эта проблема, потому что линтер печатал, что мой объект был экземпляром, Fooтогда как компилятор не мог определить его тип и считать, что это был Anyобъект вроде (в моем случае это было более сложно, линтер показывает ошибку в приведенном ниже коде, но идея здесь):

    class Foo {
        val bar: Int = 0
    }

    fun test(): Any {
        return Foo()
    }

    val foo = test()
    foo.bar // <-- Linter consider that foo is an Instance of Foo but not the compiler because it's an Any object so it show the error at compilation.

Чтобы исправить это, мне пришлось применить свой объект:

val foo = test() as Foo
Бубу
источник
0

Проверьте и установите обновления Android Studio. Это решит проблему.

введите описание изображения здесь

user2912087
источник
-1

Иногда в подобных ситуациях (я не думаю, что это ваша проблема, потому что ваш случай очень простой) стоит проверить пакет файлов kotlin.

Если у вас есть файл Kotlin в одном пакете и вы поместили туда несколько классов и пропустили объявление пакета, он заглянет внутрь IntelliJ, что у вас есть классы в том же пакете, но без определения пакета, который IntelliJ показывает вам:

Ошибка: (5, 5) Котлин: Неразрешенная ссылка: ...

Пшемек Новак
источник
-1

Самое простое решение:

Инструменты-> Котлин-> Настроить Котин в проекте

Проголосуйте, если сочтут полезным.

Шивам Габа
источник
Ничего не делает: все модули с файлами Kotlin настроены
Деунз