Intellij no puede resolver el símbolo al importar

126

Este problema ocurre de manera intermitente para diferentes bibliotecas y diferentes proyectos. Al intentar importar una biblioteca, el paquete será reconocido, pero el nombre de la clase no se puede resolver.

Si en la declaración de importación, right-click -> Goto -> the package's declarationveo todas las clases descompiladas mostradas en el panel lateral, incluidas las que necesito, si intento completar automáticamente la declaración de importación, noto que la clase que necesito no aparece en el desplegable.

Intenté invalidar cachés ya, no funciona. No puedo encontrar ningún conflicto de clase: no hay otro archivo jar en mi classpath con el mismo nombre de paquete. Puedo importar esta clase en otros proyectos.

Por favor, vea las capturas de pantalla:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Alguien tiene una pista?

Asaf Ebgi
fuente
1
¿Estás seguro de que la biblioteca se agregó al módulo? Podría agregarse como una biblioteca de proyecto pero no estar en la classpath de los módulos.
mkobit
sí - En Project Structure, la biblioteca se agrega como una dependencia - En realidad, creo que esto es un error en Intellij - Sucede aleatoriamente para diferentes bibliotecas / proyectos - La recreación del proyecto desde cero generalmente lo arregla
Asaf Ebgi
Si todo lo mencionado en la respuesta es correcto. cierre el proyecto y vuelva a importarlo. Esto resolvió este problema para mí.
Hari Krishnan

Respuestas:

250

puede intentar invalidar el caché y reiniciar intellij, en muchos casos será de ayuda.

Archivo -> Invalidar cachés / reiniciar

sahitya
fuente
proyecto de limpieza también ayudó
GeRyCh
2
@GeRyCh En mi humilde opinión, Eclipse cleaning = Intellij Invalidate cache
Gangnus
No funcionó para mí también. Mi JUnit era una 'Biblioteca Global'. Cuando elimino esto y agrego la distribución JUnit5 propia de IntelliJ, funciona. Cuando vuelvo a convertir esta dependencia en una biblioteca global, vuelven los errores. Sospecho que esto es un error porque convertirlo en una biblioteca de proyecto funciona bien.
Mark Jeronimus
1
Gracias, esto funcionó para mí. Acabo de empezar a usar Intellij y ya estoy muy molesto por eso. Uno no puede salirse de paréntesis, necesita reiniciar el programa para que se compile correctamente, este es realmente el IDE de Windows de Java.
azureai
3
Tengo este problema al menos una vez al día desde hace unas semanas. Realmente me estresa porque volver a indexar todo lleva una eternidad.
spyro
38

Puede haber múltiples razones para esto. En mi caso, fue un problema de raíz de fuente incorrecto. Los cachés invalidados no funcionaron junto con otras soluciones.

Verifique las raíces de origen de su módulo.

  1. Estructura del proyecto ( Ctrl+ Alt+ Shift+ S).

  2. Módulos

  3. Seleccione su módulo de problema.

  4. Cambie la pestaña en la parte superior de la ventana "Fuentes".

  5. Eliminar las raíces fuente no deseadas. Mantenga uno y agregue src y pruebe las raíces de origen en esta raíz.

Vipin Thomas
fuente
1
No sé si esto funciona para algunas personas, pero parece ser así, y me pregunto por qué: en realidad, su próxima sincronización Gradle recreará todos los directorios de origen que acaba de eliminar.
Fran Marzoa
16

IntelliJ tiene problemas para resolver las dependencias. Intenta lo siguiente:

  1. Haga clic derecho en pom.xml -> Maven -> Reimportar
  2. De nuevo, haga clic derecho en pom.xml -> Maven -> Generar fuentes y actualizar carpetas
Chandlersingh
fuente
12

Verifique las dependencias de su módulo.

  1. Estructura del proyecto ( Ctrl+ Alt+ Shift+S).
  2. Módulos
  3. Seleccione su módulo de problema.
  4. Cambiar pestaña en la parte superior de la ventana "Dependencias".
  5. Verifique qué biblioteca necesita (tal vez, necesita agregar una biblioteca especificada en la pestaña 'bibliotecas') o el módulo que aparece aquí y tiene el alcance correcto ('compilar' principalmente).
Artem Moiseyenko
fuente
12

Ejecute este comando en la consola de su proyecto:

mvn idea:idea

Hecho. Tuve este problema muchas veces. Intenté 'invalidar caché y reiniciar' y todas las demás soluciones. Ejecutar ese comando me funciona perfecto. Actualmente estoy usando IntelliJ 2019.2, pero esto también sucedió en versiones anteriores y la solución funcionó también.

Reynier Durán Pérez Liuver
fuente
Por cierto, este complemento
Maven
11

Me enfrenté a un problema similar, el comentario de Mike me ayudó a avanzar en la dirección para resolverlo.
Aunque la biblioteca requerida también era parte del módulo en mi proyecto, necesitaba un cambio de alcance. En la dependencia del módulo, cambié el alcance a " Compilar " en lugar de " Prueba " y ahora funciona bien para mí.

marta
fuente
Compilar en lugar de Test me funciona. ¿Sabes por qué?
30 de
1
¿Cómo haces esto? Quien es mike
cellepo
8

Archivo -> Invalidar cachés / reiniciar o reconstruir el proyecto no funcionó.

Lo que funcionó para mi proyecto Gradle fue "Actualizar todos los proyectos Gradle" desde la pestaña Gradle en la esquina superior derecha de IntelliJ v2017, usando el botón amarillo que se muestra a continuación:

ingrese la descripción de la imagen aquí

eaykin
fuente
Esta respuesta hizo el trabajo para mi proyecto Maven también. Para IntelliJ 2018.3.4, el ícono permanece igual (flechas azules de giro) pero el título exacto de la opción se llama 'Reimportar todos los proyectos Maven'. Enorme para el autor, es muy alentador encontrar una solución correcta para su problema después de una hora de investigación
TomateFraiche
4

Encontré la siguiente respuesta de @ jossef-harush y @ matt-leidholm útil desde otro enlace

  • en el editor IntelliJ, haga clic en la palabra clave roja ( Integerpor ejemplo) y presione ALT+ENTER (o haga clic en el icono de la bombilla)
  • seleccionar Setup JDKdel menú de intenciones

Menú de intenciones de IntelliJ

  • haga clic en Configure

Diálogo de selección del SDK del proyecto

  • En mi caso, la JDKruta era incorrecta (señalada en /opt/jdk1.7.0_51lugar de /opt/jdk1.7.0_65)

Diálogo de configuración del SDK roto

  • haga clic en ...y busque la JDKruta correcta

Diálogo de configuración del SDK fijo

  • vamos a limpiar el caché

Menú Archivo IntelliJ

Manntsheth
fuente
4

Archivo -> Invalidar cachés / reiniciar y construir su proyecto

Harish Mishra
fuente
3

Haga clic derecho en el archivo pom.xml, vaya a Maven, haga clic en Reimportar. Tuve un problema similar y esto funcionó para mí.

rdutta
fuente
1

Intenté invalidar cachés y reiniciar, pero lo único que funcionó para mí fue borrar completamente el directorio .idea y luego crear un nuevo proyecto desde cero.

Sheldonkreger
fuente
Esto no es realmente una solución. Solía ​​probarlo pero no afecta a mi caso.
Tung
1

También recibí este error varias veces cuando intento construir un nuevo proyecto de Java.

A continuación se muestra el paso de cómo obtuve este estúpido problema.

  1. Cree un proyecto vacío y cree un nuevo directorio src/main/java.
  2. Crea el paquete fuente net.gongmingqm10.sketch.
  3. Use gradle wrapper, gradle ideapara construir el material de gradle para el proyecto.
  4. Agregue algunas dependencias en el build.gradlearchivo ygradle build vuelva a importar el proyecto.
  5. Crear User.javay School.javaen el paquete existentenet.gongmingqm10.sketch
  6. Recibí el error mientras intento usar import School en User.java.
  7. Intellij sigue quejándose no puede resolver el símbolo en la importación.

Solución:

Primero construya el proyecto y marque main / java como la raíz fuente. Cree un nuevo directorio con el mismo nombre net.gongmingqm10.sketch. Mueva todos los archivos de los viejos paquetes problemáticos al nuevo paquete.

Causa principal:

Árbol de directorios del código fuente

Como puedes ver desde el árbol. Tengo un directorio llamado net.gongmingqm10.sketch. Pero lo que realmente necesitamos es el directorio de 3 niveles: net-> gongmingqm10-> sketch

Pero antes de terminar de construir mi proyecto en Intellij, creo un nuevo directorio llamado net.gongmingqm19.sketch, que me dará un directorio real con el nombre net.gongmingqm10.sketch.

Cuando intentamos importarlo. Obviamente, ¿cómo puede importar el archivo bajo el directorio weired con el nombre a.b.c?

Ming Gong
fuente
Gracias amigo, este fue mi problema. edit: elaborating ... Copié de 1 módulo maven a otro, y la copia aplanó los directorios. mientras Intellij parecía que tenía todo ordenado, mi carpeta era de hecho "abc" en lugar de a> b> c.
Qbert
1

@Anton Dozortsev Me volví loco por un comportamiento similar; Terminé reinstalando el IDE varias veces, solo superando el problema después de eliminar la aplicación IDEA, todos los cachés, preferencias, etc.

Probé todo tipo de pasos .ideamientras tanto (como reinicios, invalidaciones, eliminación y *.imlarchivos, y otros).

Resulta que el problema se debió a IntelliJ's idea.max.intellisense.filesize configuración . Lo configuré en 100 KB, que era más pequeño que el tamaño de mi dependencia, lo que llevó a IntelliJ a mostrarlo como desconocido, al igual que en la captura de pantalla.

Reparar:

  1. Haga clic en Ayuda -> Editar propiedades personalizadas

  2. Establezca la propiedad en un valor mayor; el valor predeterminado es 2500 KB idea.max.intellisense.filesize=2500

Mihai Bojin
fuente
1

¡Tuve el mismo problema hasta que noté que la carpeta src estaba marcada como fuente raíz en lugar de Java ! Cambiar solo a Java (src / main / java) para que sea la raíz fuente resolvió mi problema ingrese la descripción de la imagen aquí

Pipo
fuente
1

Por favor, intente Archivo-> Sincronizar. Luego cierre y vuelva a abrir IntelliJ antes de invalidar.

Una vez que reinicié. Habría invalidado, pero la sincronización borró todo después de reiniciar.

Adam M. Erickson
fuente
0

El reinicio simple funcionó para mí.

Sugeriría primero intentar reiniciar y luego puede optar por invalidar la memoria caché.

PD: limpiar los cachés del sistema dará como resultado la limpieza del historial local.

neoguy
fuente
0

Tuve un problema similar con mi proyecto Maven importado. En un módulo, no puede resolver el símbolo al importar parte del otro módulo (sí, parte de ese módulo puede resolverse).

Cambié el "directorio de inicio de Maven" a una versión más nueva que resolvió mi problema.

Actualización: Bueno por 1 hora, de vuelta al estado roto ...

Wenbin
fuente
0

¡Encontré la causa fuente!

En mi caso, agrego un archivo jar que incluye un archivo fuente java, pero creo que la fuente java es mala, en la biblioteca de dependencias de Intellij Idea agrega la fuente automática, por lo que en el Editor la importación es MALA, SOLO elimina el código fuente en " Estructura del proyecto "->" Biblioteca ", funciona para mí.

código loco
fuente
0

Lo que hizo por mí fue editar el archivo del paquete en la carpeta .idea porque accidentalmente agregué fuentes a esta biblioteca jar y Android no pudo resolverlo eliminando la línea de fuentes marcada en el error de biblioteca de imágenes b / m .

Luego reconstruya el problema de gradle y bam resuelto.

mario
fuente
0

Tuve el mismo problema y el motivo fue el marcado incorrecto de las fuentes del proyecto.

Creé manualmente el contenido raíz y no noté que la src/main/testcarpeta estaba marcada como en Sourceslugar de Tests. Por eso se suponía que mis clases de prueba tenían todas sus bibliotecas de prueba ( JUnit,Mockito , etc.) con el alcance de compilar, no de prueba.

Tan pronto como marqué src/main/testcomo Pruebas y reconstruí el módulo, todos los errores desaparecieron.

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

Tuve esto recientemente mientras intentaba usar Intellij para trabajar en NiFi, resultó que el problema era que NiFi requiere Maven> = 3.1.0 y la versión con la que había comprobado (supongo que mi valor predeterminado) era 3.0.5. La actualización de la versión de Maven para el proyecto lo arregló, por lo que en algunos casos, la desalineación de la versión de Maven puede ser algo a tener en cuenta ... Supongo que es bastante inusual, pero si llegas tan lejos en el hilo, probablemente tengas un problema inusual :)

Isaac
fuente
0

El mismo problema. Si estos métodos no funcionan. puede intentar eliminar la lib del repositorio local de maven y volver a importar a pom.

repositorio mvn

Finalmente está bien para mí.

proyecto

Misire J
fuente
0

file-> Project Structure-> Modules, encuentre el módulo con problemas, haga clic en él y elija la Dependenciespestaña en el lado derecho. Haga clic en el signo más verde, intente agregar el archivo jar o las bibliotecas que causan el problema. Funciona para mi.

SteveHu
fuente
0

Después de una larga búsqueda, descubrí que una dependencia estaba de alguna manera dañada en mi máquina en un proyecto maven. Lo extraño fue que la dependencia todavía funcionaba correctamente en el código Java compilado. Sin embargo, cuando limpié y reconstruí mi caché de dependencia de Maven, el problema desapareció e IntelliJ reconoció el paquete. Puede hacer esto ejecutando:

mvn dependency:purge-local-repository

Interesantemente, la fuente de mi problema, por lo tanto, no era IntelliJ, sino maven.

JohannesB
fuente
0

Nada de lo que probé anteriormente funcionó para mí (no es que probé todas las sugerencias). Lo que finalmente hizo el truco fue cambiar el nombre de la clase: acabo de agregar un 2 al nombre de la clase y al nombre del archivo. Luego resolví todas las referencias manualmente. (Como no fueron reconocidos, la refactorización no cambió las referencias automáticamente).

Una vez que la "versión 2" se resolvió felizmente en todas partes, pude refactorizar y eliminar el 2 de la clase y el archivo, y todo fue como debería ser.

Materia gris
fuente
0

en mi caso la solución fue agregar el proyecto como proyecto maven, además del hecho de que importé como proyecto maven: P

vaya a pom.xml -> haga clic derecho -> agregar como proyecto maven

lempesis
fuente
0

Intelli iDEA causa estos estúpidos problemas @ veces. Goto pom.xml simple, haga clic derecho y haga -> Maven -> Reimportar.

Esto deberia resolver el problema.

Aditya Goel
fuente
0

Para 2020.1.4 Ultimate Edition, tuve que hacer lo siguiente

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

El problema para mí fue que las bibliotecas no se estaban llenando mvn -U clean installdesde la terminal.

ingrese la descripción de la imagen aquí

usuario1599755
fuente
-1

Falta io? Tratar import org.openide.util.io.ImageUtilities.

Shanjun Li
fuente