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.


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).


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


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


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'


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


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!


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ê

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


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"


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


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.


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


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


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.


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


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.


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

0

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

insira a descrição da imagem aqui


-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: ...


-1

Solução mais simples:

Ferramentas-> Kotlin-> Configurar Kotin no Projeto

Votar positivamente se for encontrado Útil.


Não faz nada: todos os módulos com arquivos Kotlin estão configurados
Deunz
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.