2012-08-11 55 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