2013-03-21 13 views
20

Cosa devo fare se la "Gerarchia di chiamate aperte" è interrotta (vuota per ogni metodo in un progetto)? È molto utile per la navigazione del codice, non so come funziona senza!IDE Eclipse - La gerarchia di chiamate aperte è vuota/danneggiata

+5

chiamando eclise con 'eclipse.exe -clean -refresh' forza Eclipse a ricostruire l'indice. Dopo che la funzione ha funzionato di nuovo. – Skip

+5

Si prega di postare quel commento come nuova risposta, potrebbe essere utile ad altre persone. –

+2

Ho avuto lo stesso problema. Chiudere e riaprire il progetto ha risolto il problema per me. Potresti voler provare. – thankyou

risposta

27

Possono aiutare:

  • Calling eclise con eclipse.exe forze -refresh -Pulire Eclipse per ricostruire l'indice. Dopo che la funzione ha funzionato di nuovo.
  • Chiusura e riapertura del progetto.
+2

Non ha funzionato con me usando Eclipse Kepler. –

+1

Ho riscontrato questo problema oggi e questa risoluzione ha funzionato per me, nella versione: Kepler Service Release 1 ID build: 20130919-0819. – Gunanaresh

+0

ha funzionato per me su Eclipse Luna SR2 – centic

1

Inoltre, è possibile provare a eliminare lo spazio di lavoro e farlo ricreare. Assicurati che tutti i tuoi progetti siano sottoposti a backup.

1

Per Kepler e PDT (IDE PHP) è rotto in almeno PDT 3.2.0 e 3.3.0 (li ha provati entrambi). La correzione è in 3.3.1 e l'aggiornamento a questo era tutto ciò che dovevo fare per far funzionare nuovamente la gerarchia delle chiamate.

(scuse, non sono ancora autorizzati ad aggiungere commenti, tuttavia questo dovrebbe rivelarsi utile per molti)

1

Nel mio caso mi sembrava il mio lavoro è stato contaminato.

I progetti di apertura/chiusura e l'avvio con clean non sono stati risolti. Ho dovuto iniziare un nuovo spazio di lavoro.

Fedora 20, Eclipse Kepler.

7

Ho provato anche i suggerimenti di cui sopra, così come il suggerimento dato qui: http://mschrag.blogspot.co.at/2009/01/open-type-cant-find-your-class.html

Niente ha funzionato fino ad oggi, quando ho scoperto che io sono un asino ... volta ho configurato un filtro nella "Call Gerarchia "vista e quindi nessuna voce è stata mostrata perché filtrata. Una volta rimosso/disattivato il filtro, tutto ha funzionato di nuovo bene.

+0

Grazie. Il mio problema era simile, tranne che per qualche ragione, ha cambiato l'ambito di ricerca in uno dei miei altri progetti. L'ho impostato su Workspace e questo ha risolto il problema. – man910

+0

Ho avuto un problema simile, ma anche "donkier". Non avevo creato alcun progetto, ma non era ovvio per me perché avevo migrato il codice da un altro computer, e avevo un Remote Explorer, vedevo i file sorgente, l'albero dei sorgenti, ero persino in grado di fare un po 'di debug. ma niente di tutto ciò significa che ho creato un progetto! Ho creato un progetto ora. A proposito, ho dovuto aspettare molto tempo per tutto il "DLTK Indexing". – pgr

0

Ho lo stesso comportamento con eclipse Kepler (4.3.2).

ho scoperto che c'è un bug con i metodi con la firma di:

void get(Object o) 
Object get(Object o) 

Nel eclisse Registro errori vista trovo la seguente eccezione:

java.lang.NullPointerException 
    at org.eclipse.jdt.internal.core.search.matching.ClasspathSourceDirectory.directoryTable(ClasspathSourceDirectory.java:52) 
    at org.eclipse.jdt.internal.core.search.matching.ClasspathSourceDirectory.findClass(ClasspathSourceDirectory.java:109) 
    at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findClass(JavaSearchNameEnvironment.java:146) 
    at org.eclipse.jdt.internal.core.search.matching.JavaSearchNameEnvironment.findType(JavaSearchNameEnvironment.java:185) 
    at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:145) 
    at org.eclipse.jdt.internal.compiler.lookup.PackageBinding.getTypeOrPackage(PackageBinding.java:197) 
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getTypeOrPackage(Scope.java:2799) 
    at org.eclipse.jdt.internal.compiler.lookup.Scope.getType(Scope.java:2556) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getType(MatchLocator.java:899) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBinding0(MatchLocator.java:955) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.getMethodBinding(MatchLocator.java:907) 
    at org.eclipse.jdt.internal.core.search.matching.MethodLocator.matchMethod(MethodLocator.java:327) 
    at org.eclipse.jdt.internal.core.search.matching.MethodLocator.resolveLevel(MethodLocator.java:664) 
    at org.eclipse.jdt.internal.core.search.matching.ClassFileMatchLocator.locateMatches(ClassFileMatchLocator.java:209) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.process(MatchLocator.java:1699) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1143) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1184) 
    at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1301) 
    at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:95) 
    at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:231) 
    at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:515) 
    at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:584) 
    at org.eclipse.jdt.internal.corext.callhierarchy.CallerMethodWrapper.findChildren(CallerMethodWrapper.java:155) 
    at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.performSearch(MethodWrapper.java:301) 
    at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.doFindChildren(MethodWrapper.java:232) 
    at org.eclipse.jdt.internal.corext.callhierarchy.MethodWrapper.getCalls(MethodWrapper.java:84) 
    at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.getCalls(DeferredMethodWrapper.java:65) 
    at org.eclipse.jdt.internal.ui.callhierarchy.DeferredMethodWrapper.fetchDeferredChildren(DeferredMethodWrapper.java:79) 
    at org.eclipse.ui.progress.DeferredTreeContentManager$1.run(DeferredTreeContentManager.java:235) 
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Alla fine , sembra un bug in questa versione:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=401272

Suppongo che l'aggiornamento almeno alla versione 4.4 (Luna) risolverà questo problema.

0

Nel mio caso stavo cercando di ottenere la gerarchia di chiamata di un metodo nella classe derivata di una classe astratta. Il metodo richiesto è stato dichiarato astratto nella classe base. Quando ho aperto la gerarchia della chiamata direttamente sul metodo astratto anziché su quello implementato, tutto ha funzionato bene. (Eclipse Neon).

0

Il mio problema era che Open Call Hierarchy stava cercando solo il progetto, non l'intero Workspace. Quindi ho dovuto fare clic sulla piccola freccia in giù (nella finestra di visualizzazione Gerarchia chiamate sulla destra, è la freccia "Menu Visualizza" - un triangolo rivolto verso il basso) nella vista Gerarchia chiamate, impostare l'ambito di ricerca> Area di lavoro.

Problemi correlati