Référence non résolue de Kotlin dans IntelliJ


93

J'ai commencé avec le tutoriel pour apprendre Kotlin dans IntelliJ.Lorsque j'ai essayé d'exécuter l'exemple ie

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

L'exécution est suspendue avec ce message Error:(5, 5) Kotlin: Unresolved reference: println C'est la première fois que j'utilise IntelliJ, je n'ai jamais travaillé sur un Javaprojet non plus, est-ce qu'il me manque quelque chose?

Edit: J'ai déjà vu l'autre question, la réponse n'est pas valable pour ma situation.


Version Intellij IDEA? Quelle version du plugin Kotlin est installée?
D3xter

Quelle option avez-vous sélectionnée dans la boîte de dialogue d'exécution de Kotlin?
yole

Je viens de l'installer hier.IDEA était 14.1 et le dernier Kotlin aussi
Anony-mouse

Oui, j'obtiens également cela sur l'exemple "Hello world" en utilisant Gradle et Netbeans. La construction gradle fonctionne. Je ressemble aussi à un problème de plug-in avec Netbeans. Hélas, il n'y a pas de mises à jour récentes pour le plugin Netbeans
sera le

Réponses:


92

Votre plugin Intellij IDEA et le runtime / compilateur Kotlin que vous utilisez dans le projet doivent correspondre. Par exemple, si le plugin IDE est Beta 1, mais que votre projet Gradle / Maven utilise M12, vous aurez des problèmes exactement comme vous l'avez décrit. Alors vérifiez que tout s'aligne.

Si vous rencontrez toujours des problèmes, avec certains plugins plus anciens, vous devez effacer les caches dans Intellij IDEA (menu Fichier, Effacer les caches et redémarrer, sélectionnez l'option pour redémarrer).


Une combinaison de suppression des caches, de mise à jour du studio Android et du plugin kotlin l'a corrigé pour moi. Merci
user1405990

Salut encore, avec un peu de temps pour réfléchir à des choses et un peu de google-ing de Kotlin - je ne pense pas que la cause ici soit dans les plugins en soi . println est dans le package kotlin.io . le JAR Kotlin-stdlib contient "kotlin.io". Donc pas de problème en surface. Je kotlin.io explicitement inclus * - Résultat.: Unresolved reference: io. En tant qu'archive JAR, la résolution de référence doit être un élément de la maternelle. Alors, quoi de neuf!??
sera le

Je suis de retour ... Les utilisateurs de Netbeans peuvent aussi «réparer» ce problème - Supprimez le cache utilisateur de Netbeans. Vous pouvez voir l'emplacement du répertoire de cache Netbeans en cliquant sur la case Aide / À propos. Nettoyer - Arrêter Netbeans - Supprimer le cache - redémarrer Netbeans - reconstruire! Volia .
sera le

Si vous voyez ce problème dans votre fichier de construction Gradle uniquement, mais pas dans les fichiers sources du projet, cela pourrait aider: discussion.kotlinlang.org/t
...

25

Si quelqu'un trébuche sur ceci et JAMAIS Invalidate Cache ou ne Update Kotlin's Versiontravaille:

1) Tout d'abord, assurez-vous que vous pouvez le construire depuis l'extérieur de l'EDI. Si vous utilisez gradle, par exemple:

gradle clean build

Si tout se passe bien, alors votre environnement est parfait pour travailler Kotlin.

2) Pour corriger la version IDE, essayez ce qui suit :

Structure du projet -> {Sélectionner un module} -> Kotlin -> FIX

Comme suggéré par un membre de JetBrain ici: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597


13
J'utilise Android Studio. Je n'ai pas d'option "Kotlin" dans la structure de mon projet> modules. Des idées?
AutonomousApps

4
ne voyant même pas cette option kotlin après avoir sélectionné des modules ... en utilisant l'intellij d'entreprise, et kotlin est apparemment déjà configuré lorsque je clique sur outils -> kotlin -> configure
heug

23

Dans mon cas, il s'agissait d'une instance IntelliJ mal configurée.

Structure du projet -> SDK -> Supprimer et ajouter à nouveau le SDK Java


C'était mon problème après avoir supprimé OpenJDK et installé Oracle JDK. Merci.
Patrik Stas

Cela a résolu mon problème sur IntelliJ 2019.3 et OpenJDK 11. Je devais simplement supprimer et ajouter à nouveau le SDK.
z11i

10

Ran dans ce problème. J'ai dû ajouter ce qui suit à mon build.grade:

apply plugin: 'kotlin-android'


8

Ok, je suis venu ici plusieurs fois et je ne sais pas vraiment comment ou pourquoi cela se produit, mais la lecture suggère que c'est une incompatibilité Kotlin / JVM. J'ai essayé un certain nombre de choses mentionnées sur cette page mais non sans succès complet. C'était le genre de symptôme que l'EDI affichait dans le panneau de message après avoir essayé d'exécuter des tests via l'IDE. Cependant, le panneau de code n'a pas de lignes rouges indiquant que les modules ne peuvent pas être trouvés ou importés ou quelque chose d'anormal.

entrez la description de l'image ici

Mon projet (au moment de la rédaction de cet article) est un projet gradle 4.10.2 kotlin 1.3 dans IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, construit le 16 octobre 2018)

Pour commencer, j'ai invalidé les caches et redémarré. Puis a exécuté une construction propre gradle. Après avoir reconstruit le projet toujours pas de joie. Je suis entré dans les paramètres du projet et j'ai remarqué que les versions du compilateur n'étaient pas définies sur java 8, j'ai défini la version JVM Compiler / Kotlin / Target et le code d'octet Compiler / Java / Projet sur 1.8 / 8 (voir ci-dessous), puis j'ai exécuté des tests dans l'IDE et nous sommes de retour dans les affaires! Références résolues dans mon cas.

entrez la description de l'image ici

entrez la description de l'image ici


J'ai eu un problème similaire, mais j'ai également dû changer les modules de mes modules vers la bonne version de JVM cible
Jake Walsh

4

Pour moi, cela était dû au fait que le projet manquait de bibliothèques Gradle dans sa structure de projet.

Ajoutez simplement dans build.gradle: apply plugin: 'idea'

Et puis exécutez: $ gradle idea

Après cela, gradle reconstruit les bibliothèques de dépendances et les références sont reconnues!


Celui-ci est aidé et travaillé en raison de bibliothèques de gradle manquantes
Kaushik Burkule

3

Une solution possible pour les projets Kotlin autonomes consiste à inclure explicitement les bibliothèques standard Kotlin dans le projet racine.

Pour faire cela dans IntelliJ IDEA:

  • appuyez sur Ctrl + Maj + A (Rechercher des actions ou des options)
  • tapez "Configurer kotlin dans le projet" et laissez-le inclure les bibliothèques standard pour vous

3

Mon problème a été résolu en ajoutant kotlincomme suit

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 ( kotlin pur)

Mon erreur a été lancée ici, car Android Studio crée mon module de domaine en tant que module Java pur et plug-in appliqué en tant que java, et je l'ai utilisé dans mon module de présentation qui est un module Android / Kotlin

Android Studio trouve et importe le chemin du package mais l'incompatibilité ne permet pas la construction.

Retirez simplement apply plugin: 'java'et passez à kotlin comme suit

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

Je pense que ce sera utile


1

Avait la même chose avec IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
Kotlin obtient sa propre entrée de liste (comme Java) lors de la création d'un nouveau projet, mais la seule configuration de travail était:

Nouveau | Projet | Java | "Kotlin (Java)" (assurez-vous que le SDK du projet est également configuré)
utilisez la bibliothèque: Create, "Copy to: lib".


1

J'ai tout essayé: nettoyer les dossiers de construction, exécuter gradle clean build, exécuter AS invalider le cache (x2), réinstaller le plugin Kotlin, redémarrer le PC.

Mais à la fin, après avoir fait tout cela, cela n'a toujours pas fonctionné, mais faire également la suppression du projet build.gradlede cette ligne apply plugin: 'kotlin-android-extensions':, gradle sync puis ré-ajouter a fonctionné


1

J'avais trop cette erreur, mais j'ai résolu cela en utilisant le concept ci-dessous.

  1. Redémarrez votre édition de la communauté intellij idea.
  2. Après cela, allez dans le coin droit pour définir la configuration de java.

entrez la description de l'image ici

  1. choisissez le paramètre de configuration pour tous les modules. puis réexécutez le code. Ça va marcher.

Cette erreur vient du fait de ne pas configurer correctement java.


2
Je suis désolé mais le 2. n'est pas clair. Je n'ai pas trouvé "le coin droit"
Deunz

1

Parfois, cela peut arriver parce que vous essayez d'utiliser un projet avec des versions incompatibles du plugin Kotlin dans Gradle avec le plugin dans votre IDE. Vérifiez les versions de org.jetbrains.kotlin.jvm et d'autres plugins Kotlin dans build.gradle, et la version du plugin kotlin installé dans votre IDE, et essayez de le rendre similaire:

entrez la description de l'image ici

entrez la description de l'image ici


0

M'est arrivé aujourd'hui.

Mon problème était que j'avais trop d'onglets ouverts (je ne savais pas qu'ils étaient ouverts) avec du code source dessus.

Si vous fermez tous les onglets, vous dissuaderez peut-être IntelliJ d'indexer correctement les dépendances


En fait, cela a du sens, la raison pour laquelle vous obtenez un score de -ngt est que vous ne l'avez pas bien expliqué. Si some1 a deux projets ouverts dans l'IDE, disons un avec Gradle et un avec Maven; l'exécution de l'un des projets peut conduire à une référence non résolue.
HA S

0

L'invalidation des caches et la mise à jour du plugin Kotlin dans Android Studio ont fait l'affaire pour moi.


0

J'ai eu ce problème parce que j'essayais de mettre en place une configuration de bibliothèque multiplateforme.

J'avais supprimé tous les ensembles de sources avec leurs dépendances du fichier "build.gradle" mais gardé l'ensemble de sources "communes".

Native fonctionnait bien mais la JVM n'a pas pu construire et a montré votre erreur.

Au final, la solution était de ne pas supprimer l'ensemble source de la JVM ni ses dépendances


0

Une autre chose que je voudrais ajouter est que vous devez sélectionner Affichage -> Fenêtres d'outils -> Gradle avant de pouvoir exécuter le projet à l'aide de Gradle.

Si vous utilisez Gradle, le projet se construit et s'exécute normalement, mais que ce n'est pas le cas avec IntelliJ, cela peut résoudre le problème.


0

J'ai eu ce problème parce que le linter imprimait que mon objet était une instance Fooalors que le compilateur ne pouvait pas définir son type et considérer qu'il s'agissait d'un Anyobjet comme (C'était plus complexe dans mon cas, le linter affiche une erreur dans le code ci-dessous mais le l'idée est ici):

    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.

Pour résoudre ce problème, j'ai dû lancer mon objet:

val foo = test() as Foo

0

Vérifiez et installez les mises à jour d'Android Studio. Cela résout le problème.

entrez la description de l'image ici


-1

Parfois, dans des situations similaires (je ne pense pas que ce soit votre problème car votre cas est très simple), il vaut la peine de vérifier le package de fichiers kotlin.

Si vous avez un fichier Kotlin dans le même package et que vous y mettez quelques classes et que vous avez manqué la déclaration du package, il regarde à l'intérieur de l'IntelliJ que vous avez des classes dans le même package mais sans définition du package, l'IntelliJ vous montre:

Erreur: (5, 5) Kotlin: Référence non résolue: ...


-1

Solution la plus simple:

Outils-> Kotlin-> Configurer Kotin dans le projet

Upvote si trouvé Utile.


Ne fait rien: tous les modules avec des fichiers Kotlin sont configurés
Deunz
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.