Recibí un error en Eclipse. ¿Qué significa este mensaje de error:
El tipo iglu.ir.TermVector no se puede resolver. Se hace referencia indirecta desde los archivos .class requeridos
Recibí un error en Eclipse. ¿Qué significa este mensaje de error:
El tipo iglu.ir.TermVector no se puede resolver. Se hace referencia indirecta desde los archivos .class requeridos
Respuestas:
Significa: "Una clase que use necesita otra clase que no esté en el classpath". Debes asegurarte (como sugiere Harry Joy) de agregar el jar requerido al classpath.
Esto es tan probable que Eclipse se confunda como un error real. Ignoré el error y ejecuté el servicio web cuya interfaz de punto final se quejó, y funcionó bien, excepto por tener que lidiar con el diálogo cada vez que quería ejecutarlo. Solo otro error opaco que no me dice nada.
A veces me sucede, siempre lo solucioné con el comando "mvn eclipse: clean" para limpiar las propiedades antiguas y luego ejecuté mvn eclipse: eclipse -Dwtpversion = 2.0 (para proyectos web, por supuesto). Hay algunas propiedades antiguas guardadas, por lo que a veces se confunde el eclipse
mvn eclipse:clean
y / o mvn eclipse:eclipse
parece ser el truco de magia para que funcione.
Tuve este error debido a un repositorio maven local dañado .
Entonces, para solucionar el problema, todo lo que tenía que hacer era ir a mi repositorio y eliminar la carpeta donde estaba el .jar en cuestión, luego forzar un update maven
Eclipse.
Parece que esto ha sido un problema conocido (error 67414) que se resolvió en 3.0 ... alguien ha comentado que también está ocurriendo en 3.4.
Mientras tanto, la solución consiste en eliminar la biblioteca del sistema JRE del proyecto y luego volver a agregarla.
Here are the steps:
Vaya a las propiedades del proyecto con el error de compilación (clic derecho> Propiedades)
Ver la pestaña "Bibliotecas" en la sección "Crear ruta"
Busque la "Biblioteca del sistema JRE" en la lista (si esto falta, entonces este mensaje de error no es un error de eclipse sino un proyecto mal configurado)
Elimine la "Biblioteca del sistema JRE"
Haga clic en "Agregar biblioteca ...", seleccione "Biblioteca del sistema JRE" y agregue el JRE apropiado para el proyecto (por ejemplo, 'JRE predeterminado del espacio de trabajo')
Haga clic en "Finalizar" en la selección de la biblioteca y "Aceptar" en las propiedades del proyecto y luego espere la reconstrucción del proyecto
Esperemos que el error se resuelva ...
Este error ocurre cuando las clases en el archivo jar no siguen la misma estructura que la estructura de carpetas del jar.
por ejemplo, si su archivo de clase tiene el paquete com.test.exam y el classes.jar creado a partir de este archivo de clase tiene la estructura test.exam ... se generará un error. Debe corregir la estructura del paquete de su classes.jar y luego incluirlo en la ruta de compilación de ecplipse ...
Obtuve esta excepción porque eclipse estaba funcionando en una versión diferente de jdk, ¡simplemente cambió a la correcta, limpia, compiló y funcionó!
Tuve un caso interesante de este problema con Eclipse 4.4.2. Mi proyecto (P1) hacía referencia a una clase externa (proyecto P2) con dos métodos con el mismo nombre pero diferentes tipos de argumentos:
public static void setItem(Integer id) …
public static void setItem(Item item) …
El tipo Item
estaba contenido en un tercer proyecto P3, que no quería que fuera visible aquí. P1 llamó solo el primer método:
ExternalClass.setItem(Integer.valueOf(12345));
Entonces, el segundo método, que usó la Item
clase, no se usó, y es cierto que P3 no estaba en el classpath de compilación, ¿por qué debería hacerlo si no se usa?
Todavía Eclipse me dijo
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
Compilar desde la línea de comandos no produjo ningún problema de este tipo. Cambiar el nombre del segundo método (¡sin usar aquí!) También hizo que el problema desapareciera en Eclipse.
Lo que me arregló fue right clicking on project > Maven > Update Project
Para mí, sucede cuando actualizo mi jdk a 1.8.0_60 con mi antiguo conjunto de jarras que se ha utilizado durante mucho tiempo. Si vuelvo a jdk1.7.0_25, todos estos problemas desaparecen. Parece un problema sobre la compatibilidad entre JRE y las bibliotecas.
Obtuve el error cuando solo cambié algunas configuraciones de svn y no nada en el código. Solo limpiar los proyectos solucionó el error.
En mi caso, creé un proyecto e hice su minSdkVersion=9
y targetSdkVersion=17
. Utilicé generado automáticamente libs/android-support-v4.jar
. También tuve que usar el ActionBarActivity
uso android-support-v7-appcomapt.jar
. Así que simplemente copié el android-support-v7-appcompat.jar
archivo de la android-sdk/extras/andrid/support/v7/appcompat/libs
carpeta y lo pegué en la libs
carpeta de mi proyecto . Y esto causó el error anterior. Básicamente, también necesitaba poner el android-support-v4.jar
archivo de android-sdk/extras/andrid/support/v7/appcompat/libs
mi libs
carpeta de proyecto . Según mi conocimiento, el v7.jar
archivo tenía dependencias en el v4.jar
archivo. Entonces, necesitaba su propio v4.jar
archivo, en lugar de mi proyecto, el v4.jar
archivo creado automáticamente .
Rápidamente y simplemente lo arreglé de esta manera (uso la versión ADT: v21.0.0-531062 en Windows XP Home Edition)
Funcionó PERO el problema vuelve cada pocos días. Hago lo mismo que arriba y resuelve y me permite desarrollarme.
Además de la causa sugerida de la falta de un archivo de clase, este error también puede indicar un archivo de clase duplicado, eclipse informa este error cuando un archivo de clase en la ruta de compilación usa otra clase que tiene múltiples definiciones en la ruta de compilación.
Dado que nos da muy pocos detalles, lo más probable es que lo que hizo, que es un error increíblemente fácil de cometer, es que en lugar de dirigirse a
Build Path > Configure Build Path > Projects
y agregando su carpeta de proyecto adicional desde allí, en su lugar, fue a
Build Path > Configure Build Path > Libraries
y agregó su carpeta de proyecto desde allí.
Este es definitivamente el caso si su código es todo correcto, pero al reorganizar automáticamente las importaciones a través del ctrl+space
acceso directo, en lugar de sus declaraciones de importación que se refieren a com.your.additionalproject, todas sus referencias apuntan a bin.com.your.additionalproject.
Tenga en cuenta la papelera. Lo que significa que usted se refiere indirectamente a su clase al tratar la estructura de la carpeta de su otro proyecto como una biblioteca, haciendo que su IDE haga todo el trabajo de encontrar exactamente la clase binaria a la que se refiere.
Para corregir esto, elimine la carpeta de las Bibliotecas y, en su lugar, agréguela en la pestaña Proyectos y reorganice sus importaciones. Tu proyecto debería funcionar bien.
Cuando uso una nueva versión de eclipse e intento usar el espacio de trabajo anterior que usé con la versión anterior de eclipse, se produjo este error.
Así es como resuelvo el problema:
Haga clic derecho en mi proyecto en el Explorador de paquetes -> Propiedades -> Ruta de compilación de Java -> Bibliotecas -> Veo un error (signo cruzado) en la biblioteca del sistema JRE. Porque el camino no se puede encontrar. -> Haga doble clic en la Biblioteca del sistema JRE -> Seleccione la opción "Espacio de trabajo JRE predeterminado" -> Finalizar -> Aceptar. -> BUM ESTÁ FUNCIONANDO
FYI.
En mi caso, fue el resultado de agregar una nueva dependencia a mi pom.xml
archivo.
La nueva dependencia dependía de una versión anterior de una biblioteca (2.5). Esa misma biblioteca fue requerida por otra biblioteca en mi pom.xml
, pero requería la versión 3.0.
Por alguna razón, cuando Maven encuentra estos conflictos, simplemente omite la versión más reciente. En Eclipse al visualizar pom.xml
, puede seleccionar la pestaña "jerarquía de dependencias" en la parte inferior para ver cómo se resuelven las dependencias. Aquí encontrará si la biblioteca (y, por lo tanto, la clase) en cuestión se ha omitido por este motivo.
En mi caso fue tan simple como bloquear la versión más nueva. Puede hacerlo haciendo clic derecho en la entrada; hay una opción para bloquearla en el menú contextual.
Apunte el JRE en la ruta de compilación a un JDK. Eso funcionó para mí.