He descargado algún software de código abierto escrito en Java e intenté compilarlo usando Eclipse. Recibí el error: "La jerarquía del tipo 'Nombre de clase' es incoherente" en algunos archivos. ¿Qué causa estos errores y cómo los soluciono?Error de compilación de Eclipse: la jerarquía del tipo 'Nombre de clase' es incoherente
Respuesta
Significa que está intentando implementar una interfaz inexistente o está ampliando una clase que no existe.
Intenta actualizar tu Eclipse.
Si no funciona, puede significar que tiene una referencia a un JAR que no está en la ruta de compilación. Verifique el classpath de su proyecto y verifique que el contenedor que contiene la interfaz o la clase esté en él.
Compruebe sus errores (pestaña "marcadores"). También tuve el siguiente error:
Archive for required library in project cannot be read...
y cuando se solucionó, desapareció el "error inconsistente".
hecho, me había añadido frascos a la trayectoria de la estructura, pero por alguna razón que no se puede leer con el error
Archive for required library in project cannot be read or is not a valid ZIP file
Así que en lugar de eso ellos añadió que "tarros externos". ¡Eso ayudó y todos los problemas de compilación no fueron más!
Verá este error en caso de que alguna clase en su archivo de biblioteca que tenga en classpath tenga referencia a clase (s) no existente (s) que podría estar en otro archivo jar. Aquí, recibí este error cuando no agregué org.springframework.beans-3.1.2.RELEASE.jar
y extendí una clase de org.springframework.jdbc.core.support.JdbcDaoSupport
, que estaba en org.springframework.jdbc-3.1.2.RELEASE.jar
de mi classpath.
A veces sucede cuando agrega un frasco que USTED necesita, pero no incluye los frascos que TI necesita. En mi caso, agregar todas las jarras en tomcat/lib me ayudó a resolver este problema. Estoy trabajando en una aplicación web.
Gracias, este fue mi problema. Incluí las librerías GWT, pero me faltaba el jar de la API de servlet de Java (servlet-api-3.1.jar de Jetty en este caso). – Jamie
El problema puede ser que haya incluido jarras incorrectas. 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 y estaba incluyendo archivos JRE de Java con una versión diferente. (Yo había instalado JRE 1.6 en mi sistema y tenía JRE library 1.7 incluido en la ruta de compilación debido a Java previamente instalado). Puede ser que pueda 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.
He tenido este problema en Eclipse Juno, la causa principal fue que, aunque algunas macetas de primavera estaban siendo incluidas por dependencias maven transitorias, se incluyeron en versiones incorrectas.
Por lo tanto, debe comprobar si utiliza un marco modular como resorte que cada módulo (o al menos los más importantes: núcleo, frijoles, contexto, aop, tx, etc.) están en la misma versión.
Para resolver el problema, he usado las exclusiones de Maven Debnecy para evitar la versión incorrecta de las dependencias transitorias.
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.
Un caso más que he tenido. Proporcione la ruta correcta del proyecto e impórtela para eclipsar.
Luego vaya a Proyecto -> Limpiar -> Limpiar todos los proyectos.
Para mí fue cambiando el nivel de la API de Android a uno con las API de Google
Para mí, el problema se debía a las importaciones equivocadas. De hecho, es necesario actualizar las importaciones después de agregar la biblioteca de soporte v7.
Se puede fijar al hacer de la siguiente manera, para cada clase de su proyecto:
- Eliminar todas las líneas con
import android.[*]
, en cada clase - Reorganizar sus importaciones: en el menú contextual seleccionar Source/Organize Imports o (CTRL + SHIFT + O)
- Cuando se le solicite, seleccione las bibliotecas
android.support.[*]
(y noandroid.[*]
).
que estaba teniendo este problema también ... descubrí que la jerarquía de la clase que estaba lanzando esta excepción, no puede ser rastreado todo el camino de vuelta a su clase raíz por Eclipse ... Explico:
En mi caso, tengo 3 proyectos de Java: A, B y C ... donde A y B son proyectos maven y C un proyecto de eclipse de Java regular ...
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 "interfa ceB "
El" proyecto C "incluía el" proyecto B "en su ruta de compilación pero no el" proyecto A "(por lo que fue la causa del error) .... Después de incluir el" proyecto A "dentro del construir camino de "C", todo volvió a la normalidad ...
Definitivamente fue porque faltaban dependencias que no estaban en mi maven pom.xml.
Por ejemplo, quería crear pruebas de integración para la implementación del sitio de demostración de comercio electrónico de hoja ancha.
He incluido un contenedor de hojas anchas con pruebas de integración del comercio de hojas anchas para reutilizar sus archivos de configuración y clases de prueba de base. Ese proyecto tenía otras dependencias de prueba que no había incluido y recibí el error de "jerarquía incoherente".
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:
<geb.version>0.9.3</geb.version>
<spock.version>0.7-groovy-2.0</spock.version>
<selenium.version>2.42.2</selenium.version>
<groovy.version>2.1.8</groovy.version>
Las dependencias fueron:
<dependency>
<groupId>org.broadleafcommerce</groupId>
<artifactId>integration</artifactId>
<type>jar</type>
<classifier>tests</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.broadleafcommerce</groupId>
<artifactId>broadleaf-framework</artifactId>
<version>${blc.version}</version><!--$NO-MVN-MAN-VER$ -->
<classifier>tests</classifier>
</dependency>
<dependency>
<groupId>com.icegreen</groupId>
<artifactId>greenmail</artifactId>
<version>1.3</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>2.5.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymockclassextension</artifactId>
<version>2.4</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>5.9</version>
<type>jar</type>
<classifier>jdk15</classifier>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.gebish</groupId>
<artifactId>geb-core</artifactId>
<version>${geb.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.gebish</groupId>
<artifactId>geb-spock</artifactId>
<version>${geb.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.spockframework</groupId>
<artifactId>spock-core</artifactId>
<version>${spock.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-support</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-firefox-driver</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium.version}</version>
<scope>test</scope>
</dependency>
<!-- Logging -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.12</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>2.3.1</version>
<type>jar</type>
<scope>test</scope>
</dependency>
tuve una clase que extiende LabelProvider en un proyecto con OSGi, no se produjo el error. La solución fue: Agregar org.eclipse.jface a los complementos necesarios en el manifiesto.mf en lugar de importar los paquetes únicos como org.eclipse.jface.viewers
Si la clase extendida tiene el problema, se mostrará el mensaje de error anterior.
Ejemplo
class Example extends Example1 {
}
solucionar los problemas en Example1
Debe limpiar el proyecto, o reiniciar Eclipse.
Tuve el mismo marcador de problema exacto y lo resolví eliminando la anotación @Override de un método que era de hecho la primera implementación (el "super" es un método abstracto) y no una anulación.
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 ... lugar de eclipse. Esto resolvió el error.
si está importando el proyecto eclipse solo 1. Vaya a la configuración de ruta de compilación java en las propiedades del proyecto. 2. En caso de que la biblioteca del sistema JRE tenga un signo de error, haga doble clic para abrir la ventana Editar biblioteca 3. Cambie el entorno de ejecución a la versión java correcta del sistema o elija editar las otras configuraciones marcando la radio botones asignados a ellos. 4. Haga clic en finalizar
Error: la jerarquía del tipo "nombre de clase" es un error inconsistente.
solución: clase OtherDepJar {} -> está dentro "other.dep.jar". clase
DepJar extiende OtherDepJar {} -> está dentro "dep.jar".
clase ProblematicClass extends DepJar {} -> se encuentra dentro del proyecto actual.
Si dep.jar está en la ruta de clase del proyecto, pero other.dep.jar no está en la ruta de clase del proyecto, Eclipse mostrará el "La jerarquía del tipo de error ... es inconsistente"
Cuando importar un proyecto GWT en Eclipse sin instalar "Google Plugin for Eclipse", esto ocurrirá. Después de instalar "Google Plugin for Eclipse", este error desaparecerá.
- 1. Error de accesibilidad incoherente
- 2. Eclipse La jerarquía del tipo ... no es coherente con la anotación @Configurable
- 3. Error de accesibilidad incoherente C#
- 4. @Override error de compilación, implementando una interfaz (eclipse jdk1.6.0_23 linux)
- 5. Obteniendo la jerarquía Clase en Java?
- 6. error de compilación " 'struct' tipo redefinición" aunque es la primera definición para que
- 7. F de error # compilación: aplicación de un tipo inesperado
- 8. Error: compilación de origen de Android en eclipse
- 9. miembro de la clase estática del propio tipo de clase
- 10. Problema de Android Eclipse Error al crear la clase BuildConfig
- 11. comportamiento extraño alrededor del error de compilación "mismo borrado"
- 12. Maven Eclipse etiqueta del volumen de error
- 13. C++ error de compilación plantilla - tipo o función recursiva dependencia
- 14. ¿Cómo configuro la ruta de compilación y la ruta de clase de Eclipse desde un archivo de compilación Ant?
- 15. Error de compilación de maven erróneo (funciona en eclipse)
- 16. Eclipse C++ Tipo no se pudo resolver error aunque la compilación se realizó correctamente
- 17. Nombre de clase de los parámetros de tipo en java?
- 18. Error de Eclipse: 'Configuración de la ruta de compilación' ha encontrado el error
- 19. clase Nombre de clase (objeto), ¿qué tipo de palabra es 'objeto' en Python?
- 20. Google App Engine NO_MODIFICATION_ALLOWED_ERR Error de compilación de Eclipse
- 21. ¿Cómo inspecciono la jerarquía de clases de Python?
- 22. Eclipse Organizar paquetes en jerarquía de carpetas
- 23. Error: tipo incompleto utilizado en el especificador de nombre anidado
- 24. Nombre de tipo desconocido 'clase'; ¿Te refieres a 'Clase'? AurioTouch
- 25. jerarquía de clases tipo semigrupo/Monoid/Grupo de errores Haskell
- 26. Impresión del nombre de clase derivada en la clase base
- 27. Asp.Net MVC - Cambiar nombre de la clase de error
- 28. Clase base tiene error de tipo incompleto
- 29. La compilación de Android es lenta (usando Eclipse)
- 30. Jerarquía de clase de Android anotada
Por la misma vana, tuve una dependencia de Maven que causaba este error en Spring Tool Suite, la solución fue hacer un 'Maven'>' Descargar fuente' en la dependencia en cuestión. – MrLore
felicitaciones a usted @lagrantmere – Shinchan
También verifique que Parent esté compilando. En mi caso, sabía que existía la superclase, pero en realidad no se estaba compilando correctamente. –