2011-12-15 15 views

risposta

132

Significa che si sta tentando di implementare un'interfaccia inesistente o si sta estendendo una classe non esistente.

Prova ad aggiornare Eclipse.

Se non funziona, potrebbe significare che si ha un riferimento a un JAR che non si trova nel percorso di generazione. Controllare il percorso di classe del progetto e verificare che il barattolo contenente l'interfaccia o la classe sia incluso.

+2

Analogamente, ho avuto una dipendenza Maven che causava questo errore in Spring Tool Suite, la soluzione era eseguire un 'Maven'>' Download Source' sulla dipendenza in questione. – MrLore

+0

complimenti per te @lagrantmere – Shinchan

+2

Controlla anche che il genitore venga compilato. Nel mio caso sapevo che esisteva la superclasse, ma in realtà non era stata compilata correttamente. –

9

Controlla i tuoi errori (scheda "marcatori"). Ho avuto anche il seguente errore:

Archive for required library in project cannot be read...

e quando è stato fissato il "incoerente-errore" scomparso.

In realtà avevo aggiunto vasetti al percorso di creazione, ma per qualche motivo non è stato possibile leggere con errore

Archive for required library in project cannot be read or is not a valid ZIP file

Così, invece li ho aggiunto come "Vasi esterni". Questo ha aiutato e tutti i problemi di compilazione non c'erano più!

2

Si vedrà questo errore nel caso in cui una classe del file della libreria che si ha in classpath faccia riferimento a classi non esistenti che potrebbero trovarsi in un altro file jar. Qui, ho ricevuto questo errore quando non ho aggiunto org.springframework.beans-3.1.2.RELEASE.jar e ho esteso una classe da org.springframework.jdbc.core.support.JdbcDaoSupport, che era in org.springframework.jdbc-3.1.2.RELEASE.jar del mio classpath.

6

A volte capita quando aggiungi un barattolo di cui hai bisogno, ma non includi i barattoli di cui l'IT ha bisogno. Nel mio caso l'aggiunta di tutti i vasi in tomcat/lib mi ha aiutato a risolvere questo problema. Sto lavorando a un'app web.

+0

Grazie, questo era il mio problema. Ho incluso librerie GWT, ma in questo caso mancava il jar dell'API servlet Java (servlet-api-3.1.jar dal Jetty). – Jamie

2

Il problema potrebbe essere che sono stati inclusi vasi errati. Ho avuto lo stesso problema e il motivo era che avevo incluso una libreria JRE predefinita errata nel percorso di costruzione del progetto. Avevo installato Java con un'altra versione e includevo file JRE di Java con una versione diversa. (Avevo installato JRE 1.6 nel mio sistema e avevo la libreria 1.7 di JRE inclusa nel percorso di compilazione a causa di Java precedentemente installato) Potresti verificare se la libreria JRE che hai incluso nel percorso di compilazione sia della versione corretta cioè. della versione di Java che hai installato nel tuo sistema.

2

Ho riscontrato questo problema su Eclipse Juno, la causa principale era che sebbene alcuni vasi primaverili venissero inclusi dalle dipendenze transitori di maven, erano inclusi in versioni errate.

Quindi è necessario verificare se si utilizza un framework modulare come molla che ogni modulo (o almeno il più importante: core, bean, context, aop, tx, ecc.) Sono nella stessa versione.

Per risolvere il problema sono state utilizzate le esclusioni di maven dependence per evitare la versione errata delle dipendenze dei transitori.

3

Ho avuto questo problema dopo aver aggiornato il JDK a una nuova versione. Ho dovuto aggiornare i riferimenti alle librerie in Project Properties/Java Build Path.

3

Un altro caso che ho avuto. Assegna il percorso del progetto corretto e importalo in eclissi.

Quindi andare su Progetto -> Pulisci -> Pulisci tutti i progetti.

0

Per me è stata la modifica del livello di API Android per uno con le API di Google

1

Per me, il problema era dovuto alle importazioni sbagliate. Di fatto, è necessario aggiornare le importazioni dopo aver aggiunto la libreria di supporto v7.

Può essere fissato facendo come segue, per ogni classe del progetto:

  1. eliminare tutte le righe con import android.[*], in ogni classe
  2. Riorganizzare le vostre importazioni: dal menu contestuale selezionare Origine/Organizzazione delle importazioni o (CTRL + MAIUSC + O)
  3. Quando richiesto, selezionare le librerie android.support.[*] (e non android.[*]).
0

ho avuto anche questo problema ... ho scoperto che la gerarchia della classe che stava gettando questa eccezione, non può essere fatta tutta la via del ritorno alla sua classe radice da Eclipse ... Mi spiego:

Nel mio caso, ho 3 progetti Java: A, B e C ... dove A e B sono progetti maven e C un progetto java eclipse regolare ...

Nel progetto A, ho l'interfaccia "interfacciaA" ... Nel progetto B, ho l'interfaccia "interfacciaB" che estende "interfacciaA" Nel progetto C, ho la classe concreta "classC" che implementa "interfa" ceB "

Il" progetto C "includeva il" progetto B "nel suo percorso di compilazione ma non" progetto A "(quindi era la causa dell'errore) .... Dopo aver incluso" progetto A "all'interno del costruire il percorso di "C", tutto è tornato alla normalità ...

0

Era sicuramente perché mancavano le dipendenze che non erano nel mio maven pom.xml.

Ad esempio, volevo creare test di integrazione per la mia implementazione del sito demo di e-commerce a foglia larga.

Avevo incluso un barattolo a foglia larga con test di integrazione del commercio a latifoglie per riutilizzare i file di configurazione e le classi di test di base. Quel progetto aveva altre dipendenze di testing che non avevo incluso e ho ricevuto l'errore "gerarchia incoerente".

Dopo aver copiato le "dipendenze di test" da broadleaf/pom.xml e le variabili di proprietà associate che hanno fornito le versioni per ciascuna dipendenza in broadleaf/pom.xml, l'errore è andato via.

Le proprietà sono:

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

Le dipendenze sono stati:

<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

ho avuto una classe che estende LabelProvider in un progetto con OSGi, c'è l'errore. La soluzione era: aggiungere org.eclipse.jface ai plugin richiesti nel manifest.mf invece di importare i singoli pacchetti come org.eclipse.jface.viewers

1

Se la classe estesa presenta il problema, verrà visualizzato il messaggio di errore sopra riportato.

Esempio

class Example extends Example1 { 

} 

correggere i problemi in Example1

4

Si consiglia di pulire il progetto, o riavviare Eclipse.

0

Ho avuto lo stesso identico indicatore del problema e l'ho risolto rimuovendo l'annotazione @ Override da un metodo che era in effetti la prima implementazione (il "super" è un metodo astratto) e non un override.

1

Nel mio caso, i riferimenti di importazione in molte delle classi contenevano una parola in più. L'ho risolto modificando tutti i file per avere le importazioni corrette. Ho iniziato a fare le modifiche manualmente. Ma quando ho visto il pattern, l'ho automatizzato con un find..replace in eclissi. Questo ha risolto l'errore.

0

se si sta importando il progetto eclipse solo 1. Passare all'impostazione del percorso di generazione java sotto le proprietà del progetto. 2. Nel caso in cui la libreria del sistema JRE abbia un segno di errore allegarlo doppio clic per aprire la finestra Modifica libreria 3. Modificare l'ambiente di esecuzione sulla versione java corretta del sistema o scegliere modificare le altre impostazioni controllando la radio i pulsanti si assegnano a loro. 4. Fare clic su Fine

0

Errore: la gerarchia del tipo "nome classe" è un errore incoerente.

soluzione: classe OtherDepJar {} -> è dentro "other.dep.jar".

classe DepJar estende OtherDepJar {} -> è dentro "dep.jar".

classe ProblematicClass estende DepJar {} -> è all'interno del progetto corrente.

Se dep.jar è nel classpath del progetto, ma non è other.dep.jar nel classpath del progetto, Eclipse mostrerà la "La gerarchia del tipo ... è errore incoerente"

0

Quando l'importazione di un progetto GWT in Eclipse senza installare "Google Plugin per Eclipse", si verificherà. Dopo aver installato "Google Plugin per Eclipse", questo errore scompare.

Problemi correlati