2012-08-11 54 views
3

我剛開始學習如何爲Android開發應用程序。目前,我使用Eclipse 4.2(Juno)作爲IDE。問題是我看不到正常的方式來查看我自己的代碼中發生的異常。例如:如何在Eclipse中調試Android時查看異常詳細信息?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    List<BasicObject> objects = _objectRepository.GetAllObjects(); 
    Iterator<BasicObject> iterator = objects.iterator(); 

    while(iterator.hasNext()) 
    { 
     ObjectListItemView itemView= new ObjectListItemView(this,iterator.next()); 
    } 
} 

在當onCreate運行時間,_objectRepository是空,所以NullReference被拋出。之後,Eclipse顯示「Source not found」,這實際上並不是我所期望的。然後我多次按下F8(繼續);該進程退出並且調試器停止。只有在那之後,我才能在LogCat中看到一些堆棧跟蹤(從那裏很難導航到我自己的代碼)。

正如你所看到的,捕獲異常這一切的過程實在是耗時。有沒有其他的方式來查看異常,我做錯了什麼?

我不使用Android仿真器,我使用的是真實設備(HTC Desire S)。 我已經有LogCat,但我想要更方便/實用的東西。

爲了說明,在Visual Studio中,我可以在調試時看到異常。 Visual Studio的設置在哪裏發生異常,我可以看到我想要的任何信息的線路斷路(堆棧跟蹤本地變量,所有的東西實際上)在異常窗口(見The {not much utilized} Debug->Exceptions… window technique)。

在Eclipse中我得到異常的詳細信息在logcat中(這是非常不舒服的使用),只有調試器停止後。

+0

我認爲「用VS」你不是指VS中的android? Logcat是android的一部分,eclipse只是提供了一個視圖(你可以在沒有任何IDE的終端窗口中看到相同的東西)。 – delicateLatticeworkFever 2012-08-11 11:42:30

+0

抱歉無法找到我在哪裏寫「與VS」。我沒有在VS中開發android應用程序,我正在使用Eclipse。 – 2012-08-11 11:50:25

+0

其實它是「例如在視覺工作室」;我的意思是logcat報告的延遲不是一個正常的日食事件。這是特定於logcat和Android和(我認爲)將在VS中相同。在異常報告給logcat之前,異常會觸發調試器,這就是爲什麼你必須恢復才能看到它在那裏報告。 – delicateLatticeworkFever 2012-08-11 11:54:57

回答

-1

操作系統必須做幾件事情,爲了得到一個消息logcat的;這些是由(未捕獲)異常觸發的。如果你試圖在調試器中逐步完成它,那很乏味,你會得到很多「源代碼找不到」(這是系統代碼,不是你的)。

刺激,但它是一個安全的賭注異常後,無論發生什麼事您的應用程序內不會發生,所以你可能在這一點上,以及停止反正。如果您需要快速查看異常的logcat報告,只需運行不帶調試器的應用程序即可。

+0

Thx,我想明白了。 – 2012-08-11 11:58:51

1

您可以啓用logcat的針對Android這樣的:

在Eclipse中,轉到窗口 - >顯示視圖 - >其他 - >的Android - >logcat的

logcat的是什麼,但你的模擬器或設備的控制檯。

How to enable logcat/Console in Eclipse for Android?

+0

我認爲armless-coder在eclipse中已經有了logcat,這不是問題。 – delicateLatticeworkFever 2012-08-11 11:19:22

+0

@goldilocks,他在調試時發現很難在android模擬器中查看異常。但是如果他在正常的代碼中運行應用程序,他可以看到所有異常從logcat中的應用程序拋出異常。無論哪種方式,logcat都是所有異常可以看到。 – UVM 2012-08-11 11:24:59

+0

UVM:是的,但是他/她已經提到在logcat中看到異常,但是對它們如何到達那裏感到困惑(「只有在這之後我才能看到logcat中的一些堆棧跟蹤」)。鈮。 logcat在eclipse內部或外部是相同的。 – delicateLatticeworkFever 2012-08-11 11:28:47