2013-03-21 26 views
20

如果「打開調用層次結構」中斷(對於項目中的每種方法都爲空),我應該怎麼做? 對於代碼導航非常有用,不知道,如何在沒有它的情況下工作!Eclipse IDE - 打開調用層次結構爲空/中斷

+5

用'eclipse.exe -clean -refresh'調用eclise強制Eclipse重建索引。之後,該功能再次工作。 – Skip 2013-03-21 08:00:42

+5

請發表評論作爲新答案,它可能會對其他人有用。 – 2013-08-14 14:09:53

+2

我有同樣的問題。關閉並重新打開項目爲我解決了這個問題。你可能想嘗試一下。 – thankyou 2013-08-13 08:38:58

回答

27

下可能會有幫助:

  • 調用eclise的eclipse.exe與-refresh - 清潔力Eclipse來重建索引。之後,該功能再次工作。
  • 關閉並重新打開項目。
+2

它不適用於我使用Eclipse Kepler。 – 2014-06-19 14:34:25

+1

我今天遇到這個問題,這個決議對我來說,在版本:開普勒服務版本1 建立ID:20130919-0819。 – Gunanaresh 2014-10-21 20:50:00

+0

在Eclipse Luna SR2上爲我工作 – centic 2015-05-05 09:45:22

1

此外,您可以嘗試刪除工作區,並重新創建它。確保您的所有項目都已備份。

1

對於開普勒和PDT(PHP IDE),它至少在PDT 3.2.0和3.3.0中被破解(試用它們兩者)。修復程序在3.3.1版本中,並且更新到這一切是我必須做的再次調用層次結構。

(道歉,我還沒有允許添加註釋,但是這應該證明方便很多)

1

在我的情況下,似乎我的工作區被污染。

打開/關閉項目並從清潔開始未修復。我不得不開始一個新的工作區。

Fedora 20,Eclipse Kepler。

7

我也嘗試過上述建議,並暗示在這裏給出:http://mschrag.blogspot.co.at/2009/01/open-type-cant-find-your-class.html

沒有什麼工作,直到今天,當我發現我是驢...... 我曾經配置在「​​呼叫過濾器層次「視圖,因此沒有條目被顯示,因爲被過濾掉了。一旦我刪除/禁用過濾器一切正常工作再次。

+0

謝謝。我的問題是相似的,除了由於某種原因,它將搜索範圍改爲我的其他項目之一。我將它設置爲Workspace並解決了問題。 – man910 2015-11-11 14:50:07

+0

我有類似的問題,但即使是「donkier」。我沒有創建項目,但對我來說並不明顯,因爲我從另一臺計算機遷移了代碼,並且我有一個Remote Explorer,看到源文件,源代碼樹,甚至可以進行一些調試。但沒有一個意味着我創建了一個項目!我現在創建了項目。順便說一下,我必須等待很長時間才能完成所有的「DLTK索引」。 – pgr 2016-04-15 10:52:13

0

我和eclipse Kepler(4.3.2)有相同的行爲。

我發現,有與簽名方法BUG:

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

在Eclipse 錯誤日誌觀點我發現以下異常:

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) 

到底,它看起來像這個版本中的一個bug:

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

我認爲,升級至少4.4版本(Luna)將解決這個問題。

0

在我的情況下,我試圖在抽象類的派生類中獲取方法的調用層次結構。請求的方法在基類中聲明爲抽象。 當我直接在抽象方法而不是實現方法上打開調用層次時,一切運行良好。 (Eclipse Neon)。

0

我的問題是,打開調用層次結構只搜索項目不是整個工作區。 所以我必須在Call Hierarchy視圖中點擊向下的小箭頭(在右邊的Call Hierarchy視圖窗口中,它是「View Menu」箭頭 - 一個向下的三角形),設置Search Scope> Workspace。

相關問題