Ho ricevuto un errore in Eclipse. Cosa significa questo messaggio di errore:
Il tipo iglu.ir.TermVector non può essere risolto. È indirettamente referenziato dai file .class richiesti
Ho ricevuto un errore in Eclipse. Cosa significa questo messaggio di errore:
Il tipo iglu.ir.TermVector non può essere risolto. È indirettamente referenziato dai file .class richiesti
Risposte:
Significa: "Una classe che usi ha bisogno di un'altra classe che non si trova sul percorso di classe." Dovresti assicurarti (come suggerisce Harry Joy) di aggiungere il vaso richiesto al percorso di classe.
Probabilmente è una questione di confusione di Eclipse in quanto si tratta di un errore reale. Ho ignorato l'errore ed eseguito il servizio Web di cui si è lamentato endpointInterface, ed è andato tutto bene, tranne per il fatto di dover gestire il dialogo ogni volta che volevo eseguirlo. Solo un altro errore opaco che non mi dice nulla.
A volte mi capita di correggerlo sempre con il comando "mvn eclipse: clean" per pulire le vecchie proprietà e quindi eseguire mvn eclipse: eclipse -Dwtpversion = 2.0 (ovviamente per il progetto web). Ci sono alcune vecchie proprietà salvate, quindi a volte l'eclissi viene confusa.
mvn eclipse:cleane / o mvn eclipse:eclipsesembrano essere il trucco magico per farlo funzionare.
Ho avuto questo errore a causa di un repository di maven locale danneggiato .
Quindi, per risolvere il problema, tutto quello che dovevo fare era andare nel mio repository ed eliminare la cartella in cui si trovava il file .jar interessato, quindi forzare un update mavenin Eclipse.
Sembra che questo sia stato un problema noto (Bug 67414) che è stato risolto in 3.0 ... qualcuno ha commentato che si sta verificando anche per loro in 3.4.
Nel frattempo, la soluzione è rimuovere la libreria di sistema JRE dal progetto e quindi aggiungerla di nuovo.
Here are the steps:
Vai alle proprietà del progetto con l'errore di compilazione (tasto destro> Proprietà)
Visualizza la scheda "Librerie" nella sezione "Percorso di costruzione"
Trova la "Libreria di sistema JRE" nell'elenco (se manca questo messaggio di errore non è un bug di eclissi ma un progetto mal configurato)
Rimuovere la "Libreria di sistema JRE"
Premi "Aggiungi libreria ...", seleziona "Libreria di sistema JRE" e aggiungi il JRE appropriato per il progetto (es. "JRE di default dell'area di lavoro")
Premi "Fine" nella selezione della libreria e "OK" nelle proprietà del progetto, quindi attendi la ricostruzione del progetto
Speriamo che l'errore venga risolto ...
Questo errore si verifica quando le classi nel file jar non seguono la stessa struttura della struttura delle cartelle del jar.
ad es. se il file di classe ha il pacchetto com.test.exam e il file classes.jar creato da questo file di classe ha struttura test.exam ... verrà generato l'errore. Devi correggere la struttura del pacchetto di classes.jar e quindi includerla nel percorso di compilazione di ecplipse ...
Ho ottenuto questa eccezione perché eclipse funzionava in una versione diversa di jdk, appena cambiata in quella corretta, pulita, compilata e funzionante!
Ho avuto un caso interessante di questo problema con Eclipse 4.4.2. Il mio progetto (P1) faceva riferimento a una classe esterna (progetto P2) con due metodi con lo stesso nome ma diversi tipi di argomenti:
public static void setItem(Integer id) …
public static void setItem(Item item) …
Il tipo Itemera contenuto in un terzo progetto P3, che non volevo essere visibile qui. P1 chiamava solo il primo metodo:
ExternalClass.setItem(Integer.valueOf(12345));
Quindi il secondo metodo, che ha usato la Itemclasse, non è stato usato, ed è vero che P3 non era nel percorso di classe della compilazione - perché dovrebbe farlo se non viene usato.
Me l'ha detto ancora Eclipse
The type ...Item cannot be resolved.
It is indirectly referenced from required .class files
La compilazione dalla riga di comando non ha prodotto tali problemi. La modifica del nome del secondo metodo (non utilizzato qui!) Ha risolto il problema anche in Eclipse.
Ciò che l'ha risolto per me è stato right clicking on project > Maven > Update Project
Per me, succede quando aggiorno il mio jdk a 1.8.0_60 con il mio vecchio set di vasetti è stato usato per molto tempo. Se torno a jdk1.7.0_25, tutti questi problemi scompaiono. Sembra un problema sulla compatibilità tra JRE e le librerie.
Ho ricevuto l'errore quando ho appena cambiato alcune impostazioni svn e non qualcosa nel codice. La semplice pulizia dei progetti ha corretto l'errore.
Nel mio caso, ho creato un progetto e realizzato minSdkVersion=9e targetSdkVersion=17. Ho usato generato automaticamente libs/android-support-v4.jar. Ho anche dovuto ActionBarActivityutilizzare android-support-v7-appcomapt.jar. Quindi ho appena copiato il android-support-v7-appcompat.jarfile dalla android-sdk/extras/andrid/support/v7/appcompat/libscartella e incollato nella mia libscartella del progetto . E questo ha causato l'errore sopra. Quindi, fondamentalmente, dovevo mettere anche il android-support-v4.jarfile android-sdk/extras/andrid/support/v7/appcompat/libsnella libscartella del mio progetto . Per quanto ne so, il v7.jarfile aveva dipendenze dal v4.jarfile. Quindi, aveva bisogno del suo v4.jarfile, invece del mio progetto, il v4.jarfile creato automaticamente .
Rapidamente e semplicemente l'ho risolto in questo modo (utilizzo la versione ADT: v21.0.0-531062 su Windows XP Home Edition)
Ha funzionato MA il problema ritorna ogni pochi giorni. Faccio lo stesso come sopra e risolve e mi fa sviluppare.
Oltre alla causa già suggerita della mancanza di un file di classe, questo errore può anche indicare un file di classe duplicato, eclipse segnala questo errore quando un file di classe nel percorso di compilazione utilizza un'altra classe che ha più definizioni nel percorso di compilazione.
Dato che ci dai pochissimi dettagli, molto probabilmente quello che hai fatto, che è un errore incredibilmente facile da fare, è che invece di andare a
Build Path > Configure Build Path > Projects
e aggiungendo la cartella del progetto aggiuntiva da lì, invece sei andato a
Build Path > Configure Build Path > Libraries
e invece ha aggiunto la cartella del progetto da lì.
Questo è sicuramente il caso se il codice è tutto corretto, ma al momento della riorganizzazione automatica delle importazioni tramite ctrl+space collegamento, anziché le dichiarazioni di importazione che fanno riferimento al progetto com.your.additional, i riferimenti puntano tutti al progetto bin.com.your.additional.
Nota il cestino. Significa che stai facendo riferimento indirettamente alla tua classe trattando la tua struttura di cartelle di un altro progetto come una libreria, facendo in modo che il tuo IDE faccia tutto il possibile per trovare esattamente la classe binaria a cui ti riferisci.
Per correggere ciò, rimuovere la cartella dalle Librerie e invece aggiungerla nella scheda Progetti e riorganizzare le importazioni. Il tuo progetto dovrebbe funzionare bene.
Quando utilizzo una nuova versione di eclipse e provo a utilizzare l'area di lavoro precedente che ho usato con la vecchia versione di eclipse, si è verificato questo errore.
Ecco come risolvo il problema:
Fare clic con il tasto destro del mouse sul mio progetto in Esplora pacchetti -> Proprietà -> Percorso build Java -> Librerie -> Vedo un errore (Cross Sign) sulla libreria di sistema JRE. Perché il percorso non può essere trovato. -> Fare doppio clic sulla libreria di sistema JRE -> Selezionare l'opzione "Area di lavoro JRE predefinita" -> Fine -> OK. -> BUM FUNZIONA
FYI.
Nel mio caso è stato il risultato della mia aggiunta di una nuova dipendenza alla mia pom.xml file.
La nuova dipendenza dipendeva da una vecchia versione di una libreria (2.5). Quella stessa biblioteca era richiesta da un'altra biblioteca nella miapom.xml , ma richiedeva la versione 3.0.
Per qualche ragione, quando Maven incontra questi conflitti, omette semplicemente la versione più recente. In Eclipse durante la visualizzazione pom.xmlpuoi selezionare la scheda "gerarchia delle dipendenze" in basso per vedere come vengono risolte le dipendenze. Qui troverai se la libreria (e quindi la classe) in questione è stata omessa per questo motivo.
Nel mio caso è stato semplice come bloccare la versione più recente. Puoi farlo facendo clic con il pulsante destro del mouse sulla voce: è disponibile un'opzione per bloccarla nel menu di scelta rapida.
Puntare il JRE nel percorso Build su un JDK. Questo ha funzionato per me.