Referencia no resuelta de Kotlin en IntelliJ


93

Comencé con el tutorial para aprender Kotlin en IntelliJ. Cuando intenté ejecutar el ejemplo, es decir

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

La ejecución se suspende con este mensaje. Error:(5, 5) Kotlin: Unresolved reference: println Esta es la primera vez que uso IntelliJ. JavaTampoco he trabajado en un proyecto. ¿Me falta algo?

Editar: Ya vi la otra pregunta, la respuesta no es válida para mi situación.


Versión Intellij IDEA? ¿Qué versión del complemento Kotlin está instalada?
D3xter

¿Qué opción seleccionó en el cuadro de diálogo de tiempo de ejecución de Kotlin?
yole

Lo instalé ayer
IDEA

Sí, también obtengo esto en el ejemplo "Hola mundo" usando Gradle y Netbeans. La construcción de Gradle funciona. También parece un problema de conexión con Netbeans. Por desgracia no hay actualizaciones recientes de los Netbeans plugins
se

Respuestas:


92

Su complemento Intellij IDEA y el tiempo de ejecución / compilador de Kotlin que usa en el proyecto deben coincidir. Por ejemplo, si el complemento IDE es Beta 1, pero su proyecto Gradle / Maven con M12, tendrá problemas exactamente como los describió. Así que comprueba que todo esté alineado.

Si aún tiene problemas, con algunos complementos más antiguos, debe borrar los cachés en Intellij IDEA (menú de archivo, Borrar cachés y reiniciar, seleccione la opción para reiniciar).


Una combinación de borrar cachés, actualizar Android Studio y el complemento kotlin me lo arregló. Gracias
user1405990

Hola de nuevo, con algo de tiempo para considerar las cosas y un poco de google-ing de Kotlin, no creo que la causa aquí esté EN los complementos per se . println está en el paquete kotlin.io . el JAR de Kotlin-stdlib tiene "kotlin.io" allí. Así que no hay problema en la superficie. He incluido explícitamente kotlin.io * - resultado.: Unresolved reference: io. Como archivo JAR, la resolución de referencia debería ser material de jardín de infantes. ¿¿¡Entonces que hay de nuevo!??
será el

Estoy de vuelta ... La gente de Netbeans también puede 'arreglar' esto - Elimine la caché de usuario de netbeans. Puede ver la ubicación del directorio de caché de Netbeans haciendo clic en el cuadro Ayuda / Acerca de. Limpiar - Detener Netbeans - Eliminar caché - reiniciar Netbeans - ¡reconstruir! Volia .
será el

Si está viendo este problema en su archivo de compilación de Gradle solo, pero no en los archivos fuente del proyecto, esto podría ayudar: discus.kotlinlang.org/t/…
AlexO

25

Si alguien se encuentra con esto y NINGUNO Invalidate Cache o Update Kotlin's Versiontrabaja:

1) Primero, asegúrese de poder construirlo desde fuera del IDE. Si está usando gradle, por ejemplo:

gradle clean build

Si todo va bien, es bueno trabajar con su entorno Kotlin.

2) Para corregir la compilación del IDE, intente lo siguiente :

Estructura del proyecto -> {Seleccionar módulo} -> Kotlin -> FIX

Como lo sugiere un miembro de JetBrain aquí: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
Estoy usando Android Studio. No tengo una opción "Kotlin" en la estructura de mi proyecto> módulos. ¿Algunas ideas?
AutonomousApps

4
ni siquiera veo esta opción de kotlin después de seleccionar módulos ... usando Enterprise Intellij, y aparentemente kotlin ya está configurado cuando hago clic en herramientas -> kotlin -> configurar
heug

23

En mi caso, fue una instancia de IntelliJ mal configurada.

Estructura del proyecto -> SDK -> Eliminar y agregar el SDK de Java nuevamente


Este fue mi problema después de eliminar OpenJDK e instalar Oracle JDK. Gracias.
Patrik Stas

Esto resolvió mi problema en IntelliJ 2019.3 y OpenJDK 11. Solo tenía que eliminar y agregar el SDK nuevamente.
z11i

10

Me encontré con este problema. Tuve que agregar lo siguiente a mi build.grade:

apply plugin: 'kotlin-android'


8

Ok, he estado aquí varias veces y no estoy completamente seguro de cómo o por qué sucede esto, pero la lectura sugiere que es una falta de coincidencia entre Kotlin / JVM. He intentado varias cosas mencionadas en esta página, pero no sin éxito total. Este era el tipo de síntoma que el IDE mostraba en el panel de mensajes después de intentar ejecutar pruebas a través del IDE. Sin embargo, el panel de código no tiene líneas rojas que indiquen que los módulos no se pueden encontrar o importar o que no haya ningún inconveniente.

ingrese la descripción de la imagen aquí

Mi proyecto (al momento de escribir esto) es un proyecto gradle 4.10.2 kotlin 1.3 en IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, construido el 16 de octubre de 2018)

Para empezar, sin embargo, invalidé los cachés y reinicié. Luego ejecutó una construcción limpia de gradle. Después de reconstruir el proyecto todavía no hay alegría. Entré en la configuración del proyecto y noté que las versiones del compilador no estaban configuradas en java 8, configuré Compiler / Kotlin / Target JVM Version y Compiler / Java / Project Byte Code en 1.8 / 8 (ver más abajo), luego ejecuté algunas pruebas en el IDE y estamos de vuelta en el negocio! Referencias resueltas en mi caso.

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


Tuve un problema similar, pero también tuve que cambiar los módulos de mis módulos a la versión de JVM de destino correcta
Jake Walsh

4

Para mí, se debió a que al proyecto le faltaban las Bibliotecas Gradle en su estructura de proyecto.

Simplemente agregue build.gradle: apply plugin: 'idea'

Y luego ejecuta: $ gradle idea

Después de eso, gradle reconstruye las bibliotecas de dependencias y se reconocen las referencias.


Éste es ayudado y trabajó debido a que faltan bibliotecas Gradle
Kaushik Burkule

3

Una posible solución para proyectos independientes de Kotlin es incluir las librerías estándar de Kotlin explícitamente dentro del proyecto raíz.

Para hacer eso en IntelliJ IDEA:

  • presione Ctrl + Shift + A (acciones u opciones de búsqueda)
  • escriba "Configurar kotlin en el proyecto" y deje que incluya bibliotecas estándar para usted

3

Mi problema se resolvió agregando kotlinlo siguiente

Presentation.gradle (app.gradle)

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android' // here

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

android {
    ...
}

dependencies {
    ...
}

dominio.gradle ( kotlin puro)

Mi error fue arrojado aquí, porque Android Studio creó mi módulo de dominio como módulo Java puro y aplicó el complemento como Java, y lo usé en mi módulo de presentación que es un módulo Android / Kotlin

Android Studio encuentra e importa la ruta del paquete, pero la incompatibilidad no permite la compilación.

Simplemente retire apply plugin: 'java'y cambie a kotlin de la siguiente manera

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 {
    ..
}

Creo que sera de ayuda


1

Lo mismo sucedió con IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin obtiene su propia entrada de lista (como Java) al crear un nuevo proyecto, pero la única configuración que funcionaba era:

Nuevo | Proyecto | Java | "Kotlin (Java)" (asegúrese de que también tiene configurado el SDK del proyecto)
use library: Create, "Copy to: lib".


1

Intenté todo: limpiar carpetas de compilación, ejecutar gradle clean build, ejecutar AS invalidar caché (x2), reinstalar el complemento Kotlin, reiniciar la PC.

Pero al final, después de hacer todo esto, todavía no funcionó, pero al eliminar también del proyecto build.gradleesta línea apply plugin: 'kotlin-android-extensions':, sincronizar gradle y luego volver a agregar funcionó


1

Yo también estaba recibiendo este error, pero lo resolví usando el siguiente concepto.

  1. Reinicie su edición intellij idea community.
  2. Después de eso, vaya a la esquina derecha para establecer la configuración de java.

ingrese la descripción de la imagen aquí

  1. elija el ajuste de configuración para todos los módulos. luego vuelva a ejecutar el código. Funcionará.

Este error se debe a que no se configuró Java correctamente.


2
Lo siento, pero el 2. no está claro. No pude encontrar "la esquina derecha"
Deunz

1

A veces, esto podría suceder porque está intentando utilizar un proyecto con versiones incompatibles del complemento Kotlin en Gradle con el complemento en su IDE. Verifique las versiones de org.jetbrains.kotlin.jvm y otros complementos de Kotlin en build.gradle, y la versión del complemento de kotlin instalado en su IDE, e intente que sea similar:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí


0

Me pasó hoy.

Mi problema era que tenía demasiadas pestañas abiertas (no sabía que estaban abiertas) con código fuente en ellas.

Si cierra todas las pestañas, tal vez desconfunda IntelliJ para indexar las dependencias correctamente


En realidad, esto tiene mucho sentido, la razón por la que obtienes una puntuación de -ngt es porque no lo explicaste bien. Si some1 tiene dos proyectos abiertos en IDE, digamos uno con Gradle y otro con Maven; ejecutar uno de los proyectos puede llevar a una referencia sin resolver.
HA S

0

La invalidación de cachés y la actualización del complemento Kotlin en Android Studio funcionó para mí.


0

Tuve este problema porque estaba intentando configurar una biblioteca multiplataforma.

Eliminé todos los conjuntos de fuentes con sus dependencias del archivo "build.gradle" pero mantuve el conjunto de fuentes "común".

Native funcionaba bien, pero la JVM no pudo compilarse y mostró su error.

Al final, la solución fue no eliminar el conjunto de origen de la JVM ni sus dependencias.


0

Otra cosa que me gustaría agregar es que debe seleccionar Ver -> Ventanas de herramientas -> Gradle antes de poder ejecutar el proyecto usando Gradle.

Si usa Gradle, el proyecto se compila y se ejecuta normalmente, pero no usa IntelliJ, entonces esto puede resolver el problema.


0

Tuve este problema porque el linter estaba imprimiendo que mi objeto era una instancia de Foo mientras que el compilador no podía definir su tipo y considerar que era un Anyobjeto como (Era más complejo en mi caso, el linter muestra un error en el código siguiente pero el idea está aquí):

    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.

Para solucionarlo, tuve que lanzar mi objeto:

val foo = test() as Foo

0

Compruebe e instale las actualizaciones de Android Studio. Esto soluciona el problema.

ingrese la descripción de la imagen aquí


-1

A veces, en situaciones similares (no creo que sea su problema porque su caso es muy simple) vale la pena verificar el paquete de archivos kotlin.

Si tiene un archivo Kotlin dentro del mismo paquete y colocó allí algunas clases y se perdió la declaración del paquete, mira dentro del IntelliJ que tiene clases en el mismo paquete pero sin la definición del paquete, IntelliJ le muestra:

Error: (5, 5) Kotlin: Referencia sin resolver: ...


-1

Solución más simple:

Herramientas-> Kotlin-> Configurar Kotin en el proyecto

Votar a favor si se encuentra útil.


No hace nada: todos los módulos con archivos Kotlin están configurados
Deunz
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.