He descargado un software de código abierto escrito en Java e intenté compilarlo con Eclipse. Recibí el error: " La jerarquía del tipo 'Nombre de clase' es inconsistente " en algunos archivos. ¿Qué causa estos errores y cómo los soluciono?
139
Maven
>Download Source
en la dependencia en cuestión.A veces sucede cuando agrega un frasco que USTED necesita, pero no incluye los frascos que necesita. En mi caso, agregar todos los frascos en tomcat / lib me ayudó a resolver este problema. Estoy trabajando en una aplicación web.
fuente
Verifique sus errores (pestaña "marcadores"). También tuve el siguiente error:
y cuando eso se solucionó, el "error inconsistente" desapareció.
En realidad, agregué jarras a la ruta de compilación, pero por alguna razón no se pudieron leer con error
Por lo tanto, los agregué como "Frascos externos" ¡Eso ayudó y todos los problemas de compilación ya no existían!
fuente
Tuve este problema después de actualizar el JDK a una nueva versión. Tuve que actualizar las referencias a las bibliotecas en Project Properties / Java Build Path.
fuente
Un caso más que he tenido. Proporcione la ruta correcta del proyecto e impórtela a eclipse.
Luego vaya a Proyecto -> Limpiar -> Limpiar todos los proyectos.
fuente
Debe limpiar el proyecto o reiniciar Eclipse.
fuente
Verá este error en caso de que alguna clase en su archivo de biblioteca que tiene en classpath haga referencia a clases no existentes que podrían estar en otro archivo jar. Aquí, recibí este error cuando no agregué
org.springframework.beans-3.1.2.RELEASE.jar
y extendí una clase desdeorg.springframework.jdbc.core.support.JdbcDaoSupport
, que estaba enorg.springframework.jdbc-3.1.2.RELEASE.jar
mi classpath.fuente
El problema puede ser que haya incluido frascos incorrectos. Tuve el mismo problema y la razón fue que había incluido una biblioteca JRE predeterminada incorrecta en la ruta de compilación del proyecto. Había instalado Java con otra versión e incluía archivos JRE de Java con una versión diferente. (Instalé JRE 1.6 en mi sistema y tenía la biblioteca 1.7 de JRE incluida en la ruta de compilación debido a Java instalado previamente). Puede verificar si la biblioteca JRE que ha incluido en la ruta de compilación es de la versión correcta, es decir. de la versión de Java que ha instalado en su sistema.
fuente
He experimentado este problema en Eclipse Juno, la causa raíz fue que, aunque algunas jarras de primavera fueron incluidas por dependencias transitorias de Maven, se incluyeron en versiones incorrectas.
Por lo tanto, debe verificar si utiliza un marco modularizado como resorte que cada módulo (o al menos el más importante: núcleo, beans, contexto, aop, tx, etc.) estén en la misma versión.
Para resolver el problema, he usado exclusiones de dependencia de Maven para evitar versiones incorrectas de dependencias transitorias.
fuente
Error: la jerarquía del tipo "nombre de clase" es un error inconsistente.
solución: la clase OtherDepJar {} -> está dentro de "other.dep.jar" .
La clase DepJar extiende OtherDepJar {} -> está dentro de "dep.jar" .
class ProblematicClass extiende DepJar {} -> está dentro del proyecto actual.
Si dep.jar está en el classpath del proyecto, pero other.dep.jar no está en el classpath del proyecto, Eclipse mostrará el mensaje "La jerarquía del tipo ... es un error inconsistente"
fuente
Para mí, el problema se debió a importaciones incorrectas. De hecho, uno necesita actualizar las importaciones después de agregar la biblioteca de soporte v7.
Se puede solucionar haciendo lo siguiente, para cada clase de su proyecto :
import android.[*]
, en cada claseandroid.support.[*]
(y noandroid.[*]
).fuente
Definitivamente fue porque faltaban dependencias que no estaban en mi maven pom.xml.
Por ejemplo, quería crear pruebas de integración para mi implementación del sitio de demostración de comercio electrónico de hoja ancha.
Había incluido un tarro de hoja ancha con pruebas de integración del comercio de hoja ancha para reutilizar sus archivos de configuración y clases de prueba base. Ese proyecto tenía otras dependencias de prueba que no había incluido y recibí el error "jerarquía inconsistente".
Después de copiar las "dependencias de prueba" de broadleaf / pom.xml y las variables de propiedades asociadas que proporcionaron las versiones para cada dependencia en broadleaf / pom.xml, el error desapareció.
Las propiedades fueron:
Las dependencias fueron:
fuente
Si la clase extendida tiene el problema, se mostrará el mensaje de error anterior.
Ejemplo
solucionar los problemas en
Example1
fuente
Tuve el mismo marcador de problema exacto y lo resolví eliminando la anotación @Override de un método que, de hecho, fue la primera implementación (el "super" es un método abstracto) y no una anulación.
fuente
En mi caso, las referencias de importación en muchas de las clases contenían una palabra adicional. Lo resolví editando todos los archivos para tener las importaciones correctas. Empecé a hacer las ediciones manualmente. Pero cuando vi el patrón, lo automaticé con un hallazgo ... reemplazar en eclipse. Esto resolvió el error.
fuente
Para mí, estaba cambiando el nivel de la API de Android a uno con las API de Google
fuente
También estaba teniendo este problema ... descubrí que la jerarquía de la clase que estaba lanzando esta excepción, no puede rastrearse desde su clase raíz por eclipse ... Explico:
En mi caso, tengo 3 proyectos java: A, B y C ... donde A y B son proyectos maven y C un proyecto de eclipse java normal ...
En el proyecto A, tengo la interfaz "interfaceA" ... En el proyecto B, tengo la interfaz "interfaceB" que extiende "interfaceA" En el proyecto C, tengo la clase concreta "classC" que implementa "interfaceB"
El "proyecto C" incluía el "proyecto B" en su ruta de compilación pero no el "proyecto A" (por lo que esa fue la causa del error) .... Después de incluir el "proyecto A" dentro de la ruta de compilación de "C" , todo volvió a la normalidad ...
fuente
Tuve una clase que extiende LabelProvider en un proyecto con OSGi, allí ocurrió el error. La solución fue: Agregar org.eclipse.jface a los complementos requeridos en el manifiesto.mf en lugar de importar los paquetes individuales como org.eclipse.jface.viewers
fuente
si está importando el proyecto eclipse solo 1. Vaya a la configuración de ruta de compilación de Java en las propiedades del proyecto. 2. En caso de que la biblioteca del sistema JRE tenga un signo de error adjunto, haga doble clic para abrir la ventana Editar biblioteca 3. Cambie el entorno de ejecución a la versión correcta de Java del sistema o elija editar las otras configuraciones marcando la asignación de botones de radio a ellos 4. Haga clic en finalizar
fuente
Al importar un proyecto GWT en Eclipse sin instalar "Google Plugin for Eclipse", esto ocurrirá. Después de instalar "Google Plugin para Eclipse", este error desaparecerá.
fuente
Haga clic derecho en la carpeta del proyecto y seleccione "Java Build Path". En "Java Build Path" debería poder ver las bibliotecas. Eclipse mostrará errores en cualquiera de esas bibliotecas. La solución de esos problemas ayudará a resolver el problema.
fuente
Tuve este error después de hacer una fusión de git desde una rama donde mis clases extendieron una nueva interfaz. Fue suficiente para actualizar (F5) el árbol de archivos en el marco del Explorador de paquetes de Eclipse.
Parece que Eclipse no actualizó todo correctamente y, por lo tanto, las clases estaban ampliando una interfaz aún no existente. Después de actualizar, todos los errores desaparecieron.
fuente
Tuve que cambiar de Eclipse Oxygen que obtuve de IBM y usé IBM JDK 8 a Eclipse Photon y Oracle JDK 8. Estoy trabajando en personalizaciones de Java para maximo.
fuente