web-dev-qa-db-fra.com

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

J'ai commencé avec le tutorial pour apprendre Kotlin dans IntelliJ. Lorsque j'ai essayé d'exécuter l'exemple, i.e

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

L'exécution est suspendue avec ce messageError:(5, 5) Kotlin: Unresolved reference: println C'est la première fois que j'utilise IntelliJ.J'ai jamais travaillé sur un projet Java non plus. Quelque chose me manque-t-il?

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

51
Anony-mouse

Votre plug-in Intellij IDEA et le compilateur Kotlin que vous utilisez dans le projet doivent correspondre. Par exemple, si le plug-in IDE est en version bêta 1, mais que votre projet Gradle/Maven utilisant M12, vous rencontrerez des problèmes identiques à ceux que vous avez décrits. Alors vérifiez que tout est aligné.

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

59
Jayson Minard

Si quelqu'un tombe sur et que NIInvalidate Cache ou Update Kotlin's Version fonctionnent: 

1) Tout d’abord, assurez-vous de pouvoir le construire de l’extérieur de l’IDE. Si vous utilisez gradle, par exemple:

gradle clean build

Si tout se passe bien, votre environnement est idéal pour travailler avec Kotlin.

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

Structure du projet -> {Sélectionnez le module} -> Kotlin -> FIX

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

15
vinitius

Couru dans cette question. Je devais ajouter ce qui suit à mon build.grade: 

apply plugin: 'kotlin-Android'

8
Nick

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

Structure du projet -> SDK -> Supprimer et rajouter le SDK Java

7
Martín Coll

Pour moi, cela était dû au projet manquant Gradle Libraries 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!

4
R Lu

J'ai tout essayé: des dossiers de compilation, exécutez gradle clean build, exécutez AS, annulez le cache (x2), réinstallez le plugin Kotlin, redémarrez pc. 

Mais en fin de compte, après tout cela, cela ne fonctionnait toujours pas, mais supprimait également le projet build.gradle de cette ligne: apply plugin: 'kotlin-Android-extensions', synchronisait la gradation puis rajoutait

2
Ultimo_m

Ok, je suis venu ici quelques fois et je ne suis pas tout à fait sûr de savoir comment ou pourquoi cela se produit, mais la lecture suggère qu’il s’agit d’un décalage entre Kotlin et JVM. J'ai essayé un certain nombre de choses mentionnées sur cette page mais pas sans succès. C’était le genre de symptôme que IDE affichait dans le panneau de messages après avoir tenté d’exécuter des tests via l’EDI. Cependant, le panneau de code ne comporte pas de lignes rouges indiquant que les modules ne peuvent pas être trouvés ou importés, ni rien de fâcheux.

 enter image description here

Mon projet (au moment de la rédaction de cet article) est un projet 4.10.2 kotlin 1.3 de dernière génération dans IntelliJ (IntelliJ IDEA 2018.2.5 (Édition ultime). Build # IU-182.4892.20, construit le 16 octobre 2018).

Pour commencer, j'ai invalidé les caches et redémarré. Puis couru un build propre. Après la reconstruction du projet toujours pas de joie. Je suis allé 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 du compilateur/Kotlin/Target et le code octet du compilateur/Java/Project sur 1.8/8 (voir ci-dessous), puis j'ai effectué quelques tests dans le IDE et nous sommes de retour dans les affaires! Les références résolues dans mon cas.

 enter image description here

 enter image description here

2
Opentuned

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 qui fonctionnait était:

.__ Nouveau | Projet | Java | "Kotlin (Java)" (assurez-vous que Project SDK est également configuré)
use library: Create, "Copier dans: lib".

1
kaay

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 y mettez quelques classes et que vous avez manqué la déclaration de package, il est indiqué dans IntelliJ que vous avez des classes dans le même package mais sans définition de package, IntelliJ vous montre:

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

0
Przemek Nowak

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 "Configure kotlin in project" et laissez-le inclure les bibliothèques standard pour vous
0
Antonio Martinović

Mon problème a été résolu en ajoutant kotlin comme 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é jetée ici, car Android Studio crée mon domaine module en tant que module Java pur et plugin appliqué en tant que Java, et je l'ai utilisé dans le module de présentation qui est un module Android/Kotlin

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

Il suffit de supprimer apply plugin: 'Java' et de passer à 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

0
Abner Escócio