Котлін невирішене посилання в 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 був 14.1 і найновіший Котлін
Anonymous-mouse

Так, я також отримую це на прикладі "Hello world" за допомогою Gradle та Netbeans. Будівництво gradle працює. Я теж схожий на проблему з Netbeans. На жаль немає останніх оновлень для Netbeans плагінів
буде

Відповіді:


93

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

Якщо у вас все ще виникають проблеми, з деякими старими плагінами потрібно очистити кеш-пам’ять в Intellij IDEA (меню файлів, Очистити кеші та перезапустити, виберіть опцію для перезапуску).


Поєднання очищення кеш-пам’яті, оновлення андроїд-студії та плагіна kotlin це виправили для мене. Дякую
user1405990

Знову привіт, з деяким часом, щоб розглянути речі та трохи котлінського гугл-інгу - я не думаю, що причина тут у плагінах як таких . println знаходиться в упаковці kotlin.io . у JAR Kotlin-stdlib є "kotlin.io". Тож проблем на поверхні немає. Я явно включений kotlin.io * - результат .: Unresolved reference: io. Як архів JAR, посилання на роздільну здатність має бути матеріалом дитячого садка. То що там! ??
буде

Я повернувся ... Люди Netbeans також можуть це «виправити» - скиньте кеш користувача Netbeans. Ви можете побачити розташування каталогу кешу Netbeans, натиснувши поле Довідка / Про програму. Очистити - Зупинити Netbeans - Видалити кеш - Перезапустити Netbeans - Відновити! Воля .
буде

Якщо ви бачите цю проблему лише у своєму файлі збірки Gradle, але не у вихідних файлах проекту, це може допомогти: discuss.kotlinlang.org/t/…
AlexO,

25

Якщо хтось натрапляє на це і НІЧО Invalidate Cache або не Update Kotlin's Versionпрацює:

1) По-перше, переконайтесь, що ви можете створити його поза межами IDE. Якщо ви використовуєте gradle, наприклад:

gradle clean build

Якщо все йде добре, то з вашим оточенням все добре працювати Kotlin.

2) Щоб виправити збірку IDE, спробуйте наступне :

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

Як запропонував член JetBrain тут: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


14
Я використовую Android Studio. У моїй структурі проекту> модулі немає опції "Kotlin". Будь-які ідеї?
AutonomousApps

4
навіть не бачачи цієї опції kotlin після вибору модулів ... за допомогою корпоративного intellij, і kotlin, мабуть, уже налаштований, коли я натискаю інструменти -> kotlin -> configure
хег

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, я встановив компілятор / Kotlin / Target JVM Version і Compiler / Java / Project Byte Code на 1.8 / 8 (див. Нижче), а потім провів деякі тести в IDE, і ми знову в бізнесі! Посилання вирішено в моєму випадку.

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

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


У мене була подібна проблема, але мені також довелося змінити модулі модулів на правильну цільову версію JVM
Jake Walsh

4

Для мене це було пов’язано з тим, що в структурі проекту відсутні бібліотеки Gradle.

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

А потім запустіть: $ gradle idea

Після цього gradle відновлює бібліотеки залежностей і посилання розпізнаються!


Цьому допомагають і працюють через відсутність бібліотек gradle
Каушик Буркуле,

3

Можливим рішенням для автономних проектів Kotlin є включення стандартних бібліотек Kotlin експліцилій всередину кореневого проекту.

Для цього в IntelliJ IDEA:

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

3

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

presentation.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'і перейдіть до kotlin наступним чином

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, що робить кеш кеш (x2), перевстановлюючи плагін Kotlin, перезавантажуючи ПК.

Але врешті-решт після всього цього він все одно не спрацював, але також видалив з проекту build.gradleцей рядок:, apply plugin: 'kotlin-android-extensions'gradle sync і потім повторне додавання спрацювало


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 від правильної індексації залежностей


Насправді це має цілковитий сенс, тому що ви отримуєте бал -ngt в тому, що ви не добре це пояснили. Якщо у some1 відкрито два проекти в IDE, скажімо, один із Gradle і один з Maven; Запуск одного з проектів може призвести до невирішених посилань.
HA S

0

Скасування кеш-пам’яті та оновлення плагіна Kotlin в Android Studio зробили для мене фокус.


0

У мене була ця проблема, тому що я намагався налаштувати конфігурації багатоплатформенної бібліотеки.

Я видалив усі вихідні набори з їх залежностями з файлу "build.gradle", але зберіг "загальний" вихідний набір.

Рідна програма працювала нормально, але JVM не змогла побудувати і показала вашу помилку.

Зрештою, рішенням було не видалити набір джерела JVM, ані його залежності


0

Ще одне, що я хотів би додати, це те, що вам потрібно вибрати Перегляд -> Інструмент Windows -> Gradle, перш ніж ви зможете запустити проект за допомогою Gradle.

Якщо за допомогою Gradle проект будується і працює нормально, але з використанням IntelliJ це не так, тоді це може вирішити проблему.


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


-1

Іноді в подібних ситуаціях (я не думаю, що це ваша проблема, оскільки ваш випадок дуже простий) варто перевірити файловий пакет kotlin.

Якщо у вас є файл Kotlin в тому самому пакеті і ви помістили туди кілька класів і пропустили декларацію пакета, всередині IntelliJ виглядає, що у вас є класи в одному пакеті, але без визначення пакета IntelliJ показує вам:

Помилка: (5, 5) Котлін: Невирішене посилання: ...


-1

Найпростіше рішення:

Інструменти-> Kotlin-> Налаштування Kotin в Project

Проголосуйте, якщо знайдете Корисно.


Нічого не робить: усі модулі з файлами Kotlin налаштовані
Deunz,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.