2011-12-15 20 views

Respuesta

132

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.

+2

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

+0

felicitaciones a usted @lagrantmere – Shinchan

+2

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. –

9

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!

2

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.

6

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.

+0

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

2

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.

2

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.

3

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.

3

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.

0

Para mí fue cambiando el nivel de la API de Android a uno con las API de Google

1

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:

  1. Eliminar todas las líneas con import android.[*], en cada clase
  2. Reorganizar sus importaciones: en el menú contextual seleccionar Source/Organize Imports o (CTRL + SHIFT + O)
  3. Cuando se le solicite, seleccione las bibliotecas android.support.[*] (y no android.[*]).
0

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 ...

0

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> 
0

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

1

Si la clase extendida tiene el problema, se mostrará el mensaje de error anterior.

Ejemplo

class Example extends Example1 { 

} 

solucionar los problemas en Example1

4

Debe limpiar el proyecto, o reiniciar Eclipse.

0

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.

1

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.

0

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

0

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"

0

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á.

Cuestiones relacionadas