Intellij Não é possível resolver o símbolo na importação

126

Esse problema ocorre de forma intermitente para diferentes bibliotecas e projetos diferentes. Ao tentar importar uma biblioteca, o pacote será reconhecido, mas o nome da classe não pode ser resolvido.

Se na declaração de importação, eu right-click -> Goto -> the package's declaration, vejo todas as classes descompiladas exibidas no painel lateral - Incluindo as que eu preciso - Se eu tentar concluir automaticamente a declaração de importação, notarei que a classe de que preciso não está em destaque no suspenso.

Já tentei invalidar caches, não funciona. Não consigo encontrar nenhum conflito de classe - não há outro arquivo jar no meu caminho de classe com o mesmo nome de pacote. Consigo importar esta classe para outros projetos.

Por favor, veja capturas de tela:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Alguém tem uma pista?

Asaf Ebgi
fonte
1
Você tem certeza de que a biblioteca foi adicionada ao módulo? Ele pode ser adicionado como uma biblioteca de projetos, mas não no caminho de classe dos módulos.
Mkobit #
sim - Na Estrutura do projeto, a biblioteca é adicionada como uma dependência - Na verdade, acho que isso é um bug no Intellij - Acontece aleatoriamente em diferentes bibliotecas / projetos - A recriação do projeto do zero geralmente o corrige
Asaf Ebgi
Se tudo mencionado na resposta for adequado. feche o projeto e importe novamente. isso resolveu esse problema para mim.
Hari Krishnan

Respostas:

250

você pode tentar invalidar o cache e reiniciar o intellij; em muitos casos, isso ajudará.

Arquivo -> invalidar caches / reiniciar

sahitya
fonte
projeto de limpeza também ajudou
GeRyCh 14/12/2015
2
@GeRyCh IMHO, Limpeza do Eclipse = Intellij Invalidar cache
Gangnus
Também não funcionou para mim. Minha JUnit era uma 'Biblioteca Global'. Quando eu removo isso e adiciono a própria distribuição JUnit5 do IntelliJ, ele funciona. Quando converto essa dependência em uma biblioteca global novamente, os erros retornam. Eu suspeito que isso seja um bug, porque convertê-lo em uma biblioteca de projetos funciona bem.
Mark Jeronimus
1
Obrigado, isso funcionou para mim. Eu apenas comecei a usar o Intellij e já estou tão irritado com isso. Não se pode pular de parênteses, é preciso reiniciar o programa para que ele seja compilado corretamente; esse é realmente o IDE do Windows para Java.
Azureai
3
Eu tenho esse problema pelo menos uma vez por dia há algumas semanas. Realmente me estressa, pois a re-indexação de tudo leva uma eternidade.
Spyro
38

Pode haver vários motivos para isso. No meu caso, foi um problema de raiz de origem errado. Caches inválidos não funcionaram junto com outras soluções.

Verifique as raízes de origem do módulo.

  1. Estrutura do projeto ( Ctrl+ Alt+ Shift+ S).

  2. Módulos

  3. Selecione seu módulo com problemas.

  4. Mude a guia na parte superior da janela "Fontes".

  5. Remova raízes de origem indesejadas. Mantenha um e adicione src e raízes de origem de teste nessa raiz.

Vipin Thomas
fonte
1
Não sei se isso funciona para algumas pessoas, mas parece que sim, e me pergunto o motivo: na verdade, sua próxima sincronização Gradle recriará todos os diretórios de origem que você acabou de remover.
27519 Fran Franzozo
16

O IntelliJ tem problemas na resolução das dependências. Tente o seguinte:

  1. Clique com o botão direito do mouse em pom.xml -> Maven -> Reimport
  2. Novamente Clique com o botão direito do mouse em pom.xml -> Maven -> Gere fontes e atualize pastas
Chandlersingh
fonte
12

Verifique suas dependências do módulo.

  1. Estrutura do projeto ( Ctrl+ Alt+ Shift+ S).
  2. Módulos
  3. Selecione seu módulo com problemas.
  4. Mude a guia na parte superior da janela "Dependências".
  5. Verifique o que a biblioteca necessária (talvez, você precise adicionar a biblioteca especificada na guia 'bibliotecas') ou o módulo listado aqui e o escopo correto (principalmente 'complile').
Artem Moiseyenko
fonte
12

Execute este comando no console do projeto:

mvn idea:idea

Feito. Teve esse problema muitas vezes. Tentei "Invalidar cache e reiniciar" e todas as outras soluções. Executar esse comando funciona perfeito para mim. Atualmente, estou usando o IntelliJ 2019.2, mas isso também aconteceu nas versões anteriores e a solução também funcionou.

Liuver Reynier Durán Pérez
fonte
Btw este plugin maven não é mais mantido
nabster
11

Eu enfrentei um problema semelhante, o comentário de Mike me ajudou a avançar na direção de resolvê-lo.
Embora a biblioteca necessária também fizesse parte do módulo no meu projeto, ela precisava de uma mudança de escopo. Na dependência do módulo, alterei o escopo para " Compilar " em vez de " Teste " e agora funciona bem para mim.

sirigaita
fonte
Compilar em vez de Testar funciona para mim. Você sabe por quê?
30thh
1
Como você faz isso? Quem é o Mike?
22919 Cellepo
8

O arquivo -> invalidar caches / reiniciar ou reconstruir o projeto não funcionou.

O que funcionou no meu projeto Gradle foi "Atualizar todos os projetos Gradle" na guia Gradle, no canto superior direito do IntelliJ v2017, usando o botão marcado amarelo mostrado abaixo:

insira a descrição da imagem aqui

eaykin
fonte
Essa resposta também funcionou no meu projeto Maven. Para o IntelliJ 2018.3.4, o ícone permanece o mesmo (setas giratórias azuis), mas o título exato da opção é chamado 'Reimportar todos os projetos Maven'. Enorme big up para o autor, é tão alívio para encontrar uma solução correta para o seu problema depois de uma pesquisa de uma hora
TomateFraiche
4

Encontrei a seguinte resposta de @ jossef-harush e @ matt-leidholm útil em outro link

  • no editor IntelliJ, clique na palavra-chave vermelha ( Integerpor exemplo) e pressione ALT+ ENTER(ou clique no ícone da lâmpada)
  • selecione Setup JDKno menu de intenções

Menu de intenções do IntelliJ

  • Clique em Configure

Caixa de diálogo de seleção do SDK do projeto

  • No meu caso, o JDKcaminho estava incorreto (apontado em /opt/jdk1.7.0_51vez de /opt/jdk1.7.0_65)

Caixa de diálogo Configure SDK quebrada

  • clique no ...e navegue até o JDKcaminho certo

Corrigido o diálogo Configurar SDK

  • vamos limpar o cache

Menu Arquivo IntelliJ

manntsheth
fonte
4

Arquivo -> invalidar caches / reiniciar e criar seu projeto

Harsh Mishra
fonte
3

Clique com o botão direito do mouse no arquivo pom.xml, acesse Maven e clique em Reimportar. Eu tive um problema semelhante e isso funcionou para mim.

rdutta
fonte
1

Tentei invalidar caches e reiniciar, mas a única coisa que funcionou para mim foi acabar com o diretório .idea completamente e criar um novo projeto a partir do zero.

sheldonkreger
fonte
Esta não é realmente uma solução. Eu costumava tentar, mas isso não afeta o meu caso.
Tung
1

Também recebi esse erro várias vezes ao tentar criar um novo projeto java.

Abaixo está o passo de como consegui esse problema estúpido.

  1. Crie um projeto vazio e crie um novo diretório src/main/java.
  2. Crie o pacote de origem net.gongmingqm10.sketch.
  3. Use gradle wrapper, gradle ideapara criar o material gradle para o projeto.
  4. Adicione algumas dependências no build.gradlearquivo e gradle buildreimporte o projeto.
  5. Crie User.javae School.javano pacote existentenet.gongmingqm10.sketch
  6. Eu recebi o erro enquanto tento usar o import School no User.java.
  7. Intellij mantém reclamar não pode resolver o símbolo na importação.

Solução:

Crie o projeto primeiro e marque o main / java como a raiz de origem. Crie um novo diretório com o mesmo nome net.gongmingqm10.sketch. Mova todos os arquivos dos pacotes problemáticos antigos para o novo pacote.

Causa raiz:

Árvore de diretório do código-fonte

Como você pode ver na árvore. Eu tenho um diretório chamado net.gongmingqm10.sketch. Mas o que realmente precisamos é do diretório de 3 níveis: net-> gongmingqm10-> sketch

Mas antes de terminar de criar meu projeto no Intellij, crio um novo diretório chamado net.gongmingqm19.sketch, o que me dará um diretório real com o nome net.gongmingqm10.sketch.

Quando estamos tentando importá-lo. Obviamente, como pode intellij importar o arquivo no diretório weired com o nome a.b.c.

Ming Gong
fonte
Obrigado cara, esse foi o meu problema. edit: elaborando ... copiei de um módulo maven para outro, e a cópia achatou os diretórios. enquanto a Intellij parecia ter tudo resolvido, minha pasta era de fato "abc" em vez de a> b> c.
Qbert
1

@Anton Dozortsev Fiquei louco por um comportamento semelhante; Acabei reinstalando o IDE várias vezes, passando apenas pelo problema depois de remover o aplicativo IDEA, todos os caches, preferências, etc.

Tentei todos os tipos de etapas intermediárias (como reinicializações, invalidações, exclusão .ideae *.imlarquivos e outros).

Acontece que o problema foi devido à idea.max.intellisense.filesizeconfiguração do IntelliJ . Eu o tinha definido como 100 KB, que era menor que o tamanho da minha dependência, levando o IntelliJ a mostrá-lo como desconhecido, assim como na sua captura de tela.

Consertar:

  1. Clique em Ajuda -> Editar propriedades personalizadas

  2. Defina a propriedade para um valor maior; o padrão é 2500KB idea.max.intellisense.filesize=2500

Mihai Bojin
fonte
1

Tive o mesmo problema até que notei que a pasta src estava marcada como fonte raiz em vez de java ! Mudar para apenas o java (src / main / java) para ser a raiz de origem resolveu meu problema insira a descrição da imagem aqui

Pipo
fonte
1

Por favor, tente Arquivo-> Sincronizar. Em seguida, feche e reabra o IntelliJ antes de invalidar.

Depois que eu reiniciei. Eu teria invalidado, mas a sincronização limpou tudo depois de reiniciar.

Adam M. Erickson
fonte
0

O Reinício Simples funcionou para mim.

Sugiro primeiro tentar com o reinício e, em seguida, você pode optar por invalidar o cache.

PS: Limpar os caches do sistema resultará na limpeza do histórico local.

neoguy
fonte
0

Eu tive um problema semelhante com meu projeto Maven importado. Em um módulo, ele não pode resolver o símbolo na importação de parte do outro módulo (sim, parte desse módulo pode ser resolvida).

Alterei o "diretório inicial do Maven" para uma versão mais recente que resolveu meu problema.

Atualização: Bom por 1 hora, de volta ao status de falha ...

Wenbin
fonte
0

Eu encontrei a causa da fonte!

No meu caso, eu adiciono um arquivo jar, incluindo algum arquivo de origem java, mas acho que a fonte java é ruim; na biblioteca de dependência do Intellij Idea, ele adiciona a fonte automaticamente; portanto, no Editor, a importação é RUIM; APENAS remova o código-fonte em " Estrutura do projeto "->" Biblioteca ", funciona para mim.

código louco
fonte
0

O que isso fez comigo foi editar o arquivo do pacote na pasta .idea, porque acidentalmente adicionei fontes a esta biblioteca jar e o Android não conseguiu resolvê-lo excluindo a linha de fontes, conforme marcado no erro da biblioteca de imagens b / m .

Em seguida, reconstrua o problema de gradle e bam resolvido.

mario
fonte
0

Eu tive o mesmo problema e o motivo disso foi a marcação incorreta das fontes do projeto.

Criei manualmente o conteúdo raiz e não percebi que a src/main/testpasta estava marcada como em Sourcesvez de Tests. É por isso que minhas classes de teste foram assumidos para ter todas as suas bibliotecas de teste ( JUnit, Mockito, etc.) com o escopo de compilação, não teste.

Assim que marquei src/main/testcomo Testes e reconstruí o módulo, todos os erros desapareceram.

Евгений Гордиенко
fonte
0

Eu tive isso recentemente enquanto tentava usar o Intellij para trabalhar no NiFi, mas o problema é que o NiFi exige o Maven> = 3.1.0 e a versão com a qual eu fiz check-out (acho que o meu padrão) é 3.0.5. A atualização da versão do Maven para o projeto foi corrigida, portanto, em alguns casos, o desalinhamento da versão do Maven pode ser algo interessante ... Eu acho que é bastante incomum, mas se você chegar tão longe no tópico, provavelmente está tendo um problema. questão incomum :)

Isaac
fonte
0

O mesmo problema. Se esses métodos não funcionarem. você pode tentar excluir a lib do repositório maven local e reimportar para pom.

repositório mvn

Finalmente está tudo bem para mim.

projeto

Misire J
fonte
0

file-> Project Structure-> Modules, encontre o módulo com problemas, clique nele e escolha a Dependenciesguia no lado direito. Clique no sinal de mais verde, tente adicionar o jar ou as bibliotecas que causam o problema. Isso funciona para mim.

SteveHu
fonte
0

Depois de uma longa pesquisa, descobri que uma dependência estava de alguma forma corrompida na minha máquina em um projeto que havia sido feito. O estranho é que a dependência ainda estava funcionando corretamente no código java compilado. No entanto, quando eu limpei e reconstruí meu cache de dependência, o problema desapareceu e o IntelliJ reconheceu o pacote. Você pode fazer isso executando:

mvn dependency:purge-local-repository

Curiosamente, a fonte do meu problema, portanto, não era o IntelliJ, mas a própria invenção.

JohannesB
fonte
0

Nada do que tentei acima funcionou para mim (não que eu tenha tentado todas as sugestões). O que finalmente fez o truque foi renomear a classe - acabei de adicionar um 2 ao nome e nome do arquivo da classe. Então resolvi todas as referências manualmente. (Como eles não foram reconhecidos, a refatoração não alterou as referências automaticamente.)

Depois que a "versão 2" foi resolvida com facilidade em todos os lugares, eu pude refatorar e remover o 2 da classe e do arquivo, e tudo estava como deveria.

greymatter
fonte
0

no meu caso, a solução foi adicionar o projeto como projeto maven, além do fato de eu ter importado como projeto maven: P

vá para pom.xml -> clique com o botão direito do mouse -> adicionar como projeto maven

lempesis
fonte
0

O Intelli iDEA causa esses problemas estúpidos @ times. Simples vá para pom.xml, clique com o botão direito e faça -> Maven -> Reimportação.

Isso deve resolver o problema.

Aditya Goel
fonte
0

Para a edição 2020.1.4 Ultimate, tive que fazer o seguinte

View -> Maven -> Generate Sources and Update Folders For all Projects

O problema para mim foi que as bibliotecas não estavam sendo preenchidas mvn -U clean installno terminal.

insira a descrição da imagem aqui

user1599755
fonte
-1

Desaparecido io? Tente import org.openide.util.io.ImageUtilities.

Shanjun Li
fonte