Referência não resolvida de Kotlin no IntelliJ

93

Comecei com o tutorial para aprender Kotlin em IntelliJ. Quando tentei executar o exemplo, isto é

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

A execução foi suspensa com esta mensagem Error:(5, 5) Kotlin: Unresolved reference: println Esta é a primeira vez que uso o IntelliJ. Também nunca trabalhei em um Javaprojeto. Estou perdendo alguma coisa?

Edit: eu vi a outra pergunta já. A resposta não é válida para minha situação.

Rato anônimo
fonte
Versão Intellij IDEA? Qual versão do plugin Kotlin está instalada?
D3xter
Qual opção você selecionou na caixa de diálogo do tempo de execução do Kotlin?
yole
Acabei de instalá-lo ontem
IDEA
Sim, também estou obtendo isso no exemplo "Hello world" usando Gradle e Netbeans. O gradle build funciona. Também pareço um problema de plug-in com o Netbeans. Infelizmente, não há atualizações recentes para o plug
será em

Respostas:

94

Seu plug-in Intellij IDEA e o tempo de execução / compilador Kotlin que você usa no projeto precisam ser correspondentes. Por exemplo, se o plug-in IDE for Beta 1, mas seu projeto Gradle / Maven usando M12, você terá problemas exatamente como descreveu. Portanto, verifique se tudo está alinhado.

Se você ainda tiver problemas, com alguns plug-ins mais antigos, você precisa limpar os caches no Intellij IDEA (menu de arquivo, Limpar Caches e Reiniciar, selecione a opção para reiniciar).

Jayson Minard
fonte
Uma combinação de limpar caches, atualizar o Android Studio e o plugin kotlin consertou para mim. Obrigado
user1405990
Olá de novo, com algum tempo para considerar as coisas e um pouco de Kotlin google-ing - não acho que a causa aqui esteja nos plugins em si . println está no pacote kotlin.io . o JAR Kotlin-stdlib contém "kotlin.io". Portanto, não há problema na superfície. Eu incluí explicitamente kotlin.io * - Resultado.: Unresolved reference: io. Como um arquivo JAR, a resolução de referência deve ser material de jardim de infância. Então, como vai!??
será em
Estou de volta ... O pessoal do Netbeans também pode 'consertar' isso - Elimine o cache do usuário do netbeans. Você pode ver a localização do diretório de cache do Netbeans clicando na caixa Ajuda / Sobre. Limpar - Parar o Netbeans - Soltar o cache - reiniciar o Netbeans - reconstruir! Volia .
será em
Se você estiver vendo esse problema apenas no arquivo de compilação do Gradle, mas não nos arquivos de origem do projeto, isso pode ajudar: discuss.kotlinlang.org/t/…
AlexO
28

Se alguém se deparar com isso e NEM Invalidate Cache ou Update Kotlin's Versiontrabalhar:

1) Primeiro, certifique-se de que você pode construí-lo fora do IDE. Se você estiver usando gradle, por exemplo:

gradle clean build

Se tudo correr bem, então seu ambiente é ótimo para trabalhar Kotlin.

2) Para corrigir o build IDE, tente o seguinte :

Estrutura do Projeto -> {Selecionar Módulo} -> Kotlin -> FIX

Conforme sugerido por um membro do JetBrain aqui: https://discuss.kotlinlang.org/t/intellij-kotlin-project-screw-up/597

vinitius
fonte
14
Estou usando o Android Studio. Não tenho a opção "Kotlin" na estrutura do meu projeto> módulos. Alguma ideia?
AutonomousApps de
4
nem mesmo vendo esta opção kotlin depois de selecionar os módulos ... usando o enterprise intellij, e o kotlin aparentemente já está configurado quando clico em ferramentas -> kotlin -> configurar
heug
24

No meu caso, foi uma instância do IntelliJ mal configurada.

Estrutura do projeto -> SDKs -> Remover e adicionar o Java SDK novamente

Martín Coll
fonte
Este foi o meu problema depois de remover o OpenJDK e instalar o Oracle JDK. Obrigado.
Patrik Stas
Isso resolveu meu problema no IntelliJ 2019.3 e no OpenJDK 11. Eu apenas tive que remover e adicionar o SDK novamente.
z11i
10

Encontrei esse problema. Tive que adicionar o seguinte ao meu build.grade:

apply plugin: 'kotlin-android'

usuario
fonte
8

Ok, já estive aqui algumas vezes e não tenho certeza de como ou por que isso acontece, mas a leitura sugere que é uma incompatibilidade Kotlin / JVM. Eu tentei uma série de coisas mencionadas nesta página, mas não sem sucesso total. Esse era o tipo de sintoma que o IDE estava exibindo no painel de mensagens depois de tentar executar testes por meio do IDE. No entanto, o painel de código não tem linhas vermelhas indicando que os módulos não podem ser encontrados ou importados ou algo desagradável.

insira a descrição da imagem aqui

Meu projeto (no momento da redação deste) é um projeto gradle 4.10.2 kotlin 1.3 no IntelliJ (IntelliJ IDEA 2018.2.5 (Ultimate Edition) Build # IU-182.4892.20, construído em 16 de outubro de 2018)

Para começar, porém, invalidei os caches e reiniciei. Em seguida, executei uma compilação limpa do Gradle. Depois de reconstruir o projeto ainda sem alegria. Entrei nas configurações do projeto e notei que as versões do compilador não estavam definidas para java 8, eu defini o Compiler / Kotlin / Versão JVM de destino e Compiler / Java / Project Byte Code para 1.8 / 8 (veja abaixo), então executei alguns testes em o IDE e estamos de volta ao negócio! Referências resolvidas no meu caso.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Opentuned
fonte
Eu tive um problema semelhante, mas também tive que alterar meus módulos de módulos para a versão correta da JVM de destino
Jake Walsh
4

Para mim, foi devido ao projeto não ter Bibliotecas Gradle em sua estrutura de projeto.

Basta adicionar build.gradle: apply plugin: 'idea'

E então execute: $ gradle idea

Depois disso, o gradle reconstrói as bibliotecas de dependências e as referências são reconhecidas!

R Lu
fonte
Este é ajudado e funcionou devido à ausência de bibliotecas Gradle
Kaushik Burkule,
3

Uma possível solução para projetos Kotlin autônomos é incluir bibliotecas padrão Kotlin explicitamente dentro do projeto raiz.

Para fazer isso no IntelliJ IDEA:

  • pressione Ctrl + Shift + A (ações ou opções de pesquisa)
  • digite "Configurar kotlin no projeto" e deixe-o incluir bibliotecas padrão para você
Antonio Martinović
fonte
3

Meu problema foi resolvido adicionando kotlino seguinte

apresentação.gradle (app.gradle)

apply plugin: 'com.android.application'

apply plugin: 'kotlin-android' // here

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

android {
    ...
}

dependencies {
    ...
}

domain.gradle (puro kotlin)

Meu erro foi lançado aqui, porque o Android Studio criou meu módulo de domínio como um módulo Java puro e apliquei um plugin como java, e usei-o no meu módulo de apresentação que é um módulo Android / Kotlin

O Android Studio encontra e importa o caminho do pacote, mas a incompatibilidade não permite a compilação.

Apenas remova apply plugin: 'java'e mude para kotlin como segue

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

Eu acho que vai ser útil

Abner Escócio
fonte
1

Teve o mesmo com IDEA 14.1.5, Kotlin v.1.0.0-beta-1038-IJ141-17.
O Kotlin obtém sua própria entrada de lista (como Java) ao criar um novo projeto, mas a única configuração de trabalho era:

Novo | Projeto | Java | "Kotlin (Java)" (certifique-se de ter o SDK do projeto configurado também)
use library: Create, "Copy to: lib"

kaay
fonte
1

Tentei de tudo: limpar pastas de compilação, executar gradle clean build, executar AS invalidate cache (x2), reinstalar o plugin do Kotlin, reiniciar o pc.

Mas no final, depois de fazer tudo isso, ainda não funcionou, mas também a remoção do projeto build.gradledesta linha apply plugin: 'kotlin-android-extensions':, gradle sync e readicionamento funcionou

Ultimo_m
fonte
1

Eu também estava recebendo esse erro, mas resolvi isso usando o conceito abaixo.

  1. Reinicie sua edição da comunidade do intellij idea.
  2. Depois disso, vá no canto direito para definir a configuração para java.

insira a descrição da imagem aqui

  1. escolha a definição de configuração para todos os módulos. em seguida, execute novamente o código. Vai funcionar.

Este erro ocorre porque o java não foi configurado corretamente.

Savigya Singh
fonte
2
Lamento, mas o 2. não está claro. Não consegui encontrar "o canto direito"
Deunz
1

Às vezes, isso pode acontecer porque você está tentando usar um projeto com versões incompatíveis do plug-in Kotlin no Gradle com o plug-in no seu IDE. Verifique as versões de org.jetbrains.kotlin.jvm e outros plug-ins Kotlin em build.gradle e a versão do plug-in kotlin instalado em seu IDE e tente torná-lo semelhante:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Arkady
fonte
0

Aconteceu comigo hoje.

Meu problema era que eu tinha muitas guias abertas (não sabia que estavam abertas) com código-fonte nelas.

Se você fechar todas as guias, talvez você desfaça a fusão do IntelliJ para indexar as dependências corretamente

LeoColman
fonte
Na verdade, isso faz todo o sentido, a razão pela qual você obtém pontuação -ngt é porque você não explicou bem. Se some1 tiver dois projetos abertos no IDE, digamos um com Gradle e outro com Maven; executar um dos projetos pode levar a uma referência não resolvida.
HA S de
0

Invalidar caches e atualizar o plug-in Kotlin no Android Studio funcionou para mim.

André Ramon
fonte
0

Eu tive esse problema porque estava tentando definir configurações de uma biblioteca multiplataforma.

Eu havia excluído todos os conjuntos de fontes com suas dependências do arquivo "build.gradle", mas mantive o conjunto de fontes "comuns".

Native estava funcionando bem, mas a JVM não foi capaz de construir e mostrou seu erro.

No final, a solução foi não excluir o conjunto de origem da JVM nem suas dependências

Alaa Sbateen
fonte
0

Outra coisa que gostaria de acrescentar é que você precisa selecionar Exibir -> Janelas de ferramentas -> Gradle antes de executar o projeto usando o Gradle.

Se usando o Gradle, o projeto é compilado e executado normalmente, mas usando o IntelliJ não, isso pode resolver o problema.

Jairhumberto
fonte
0

Tive esse problema porque o linter estava imprimindo que meu objeto era uma instância, Fooenquanto o compilador não conseguia definir seu tipo e considerá-lo um Anyobjeto como (era mais complexo no meu caso, o linter mostra um erro no código abaixo, mas o a ideia está aqui):

    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 consertar, tive que lançar meu objeto:

val foo = test() as Foo
Bubu
fonte
0

Verifique e instale as atualizações do Android Studio. Isso resolve o problema.

insira a descrição da imagem aqui

user2912087
fonte
-1

Às vezes, em situações semelhantes (não acho que seja o seu problema porque o seu caso é muito simples), vale a pena verificar o pacote de arquivos kotlin.

Se você tiver o arquivo Kotlin dentro do mesmo pacote e colocar lá algumas classes e perder a declaração do pacote, verá que dentro do IntelliJ você tem classes no mesmo pacote, mas sem definição de pacote, o IntelliJ mostra a você:

Erro: (5, 5) Kotlin: Referência não resolvida: ...

Przemek Nowak
fonte
-1

Solução mais simples:

Ferramentas-> Kotlin-> Configurar Kotin no Projeto

Votar positivamente se for encontrado Útil.

Shivam Gaba
fonte
Não faz nada: todos os módulos com arquivos Kotlin estão configurados
Deunz