你如何调试Android inEclipse

use*_*821 6 eclipse debugging logging android exception

请尝试以下方法:

  1. 创建一个HelloWorld应用程序.

  2. 将一条Log语句添加到onCreate的末尾:

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Log.d("HelloWorldActivity.onCreate()", "setContentView() completed");
    }
  
  1. 在Log语句上放置一个断点.

  2. 在模拟器中运行应用程序并记下它的工作原理并逐步查看Eclipse的LogCat窗口中的Logged条目.

  3. 将HelloWorldActivity更改为从ListActivity而不是Activity扩展.

    public class HelloWorldActivity extends ListActivity {
    
  4. 再次在模拟器中运行应用程序并注意它无法访问Log语句.

我的问题不是为什么会失败.我的问题是,您将如何调试此故障?我在Eclipse Debug窗格中看到的只是一个RuntimeException.我看到LogCat有一堆消息,但是它很庞大,我已经搜索了它,但找不到任何表明错误的地方或我的代码中发生异常的地方.我找不到在RuntimeException或堆栈跟踪中显示消息的方法,以了解哪行代码启动了异常.

我假设必须有更好的方法来使用这些工具来查找错误,但我是新手,似乎无法找到更好的调试方法,除了将我编码的所有内容包装在try/catch中.我原本希望在抛出异常时生成的LogCat中找到一条消息.我希望Debug窗口允许您检查异常的内容.我不是说这种技术不存在,我说我很难搞清楚如何调试和询问存在哪些技术以及如何使用它们?

所以,简单地说:

  • 如果你还不知道导致它的原因,你会怎么发现这个错误?
  • 你会用什么技术找出根本原因?
  • 您将如何检查Exception的详细信息?
  • 通常,您如何使用Eclipse在Android代码中发现问题?

欢迎提出多项建议和讨论.:)

我会包含我的LogCat内容,但它太大了,这是不合理的.你应该能够轻松地自己重现这个,所以我把它遗漏了.LogCat中的某些东西可能对我有所帮助,但是因为它甚至运行一个小程序它是如此之大,我需要提示在搜索API调用抛出的异常时如何搜索以及如何解释它.我看到其他帖子说明LogCat中应该有什么东西,虽然可能是真的,但我自己找不到任何东西.如果您认为某些内容应该在LogCat中,请自行运行测试并将这些行复制到我应该找到的响应中.

谢谢.

========

截至目前的摘要技术列表如下:

入侵技术:1.将Toast放置在您希望看到您已执行的代码位置.2.将try/catch放在您认为可能抛出异常的代码中.3.注释掉代码并重新编译和重新测试.

非侵入性技术:1.使用调试器.断点,变量检查...... 2.猴子压力测试仪.3.下载Android源库.4.使用LogCat过滤器查看是否列出了"引起的".

不清楚是否可用:1.调试Android库的版本,其中包含其他日志记录,断言或其他附加帮助.2.能够通过Debug窗格或其他技术检查Eclipse中的Exception.3.一种定义更全局的try/catch异常处理程序的方法.4.能够通过Android库源代码进行调试.

不可用:1.一种非侵入性的方式来查看异常的内容或异常发生的位置.

Tiv*_*vie 2

嘿,有趣的问题。好吧,第一个提示,您可以过滤 logcat 告诉您的内容。例如,您可以通过单击红色 (e) 使其仅显示错误。如果您在调试模式下运行应用程序,它还会告诉您错误发生的位置。它可以直接将您指向您的代码或 android sdk。知道是什么 android 包导致了错误是有很大帮助的。

这两个就突然出现在我的脑海里。希望能帮助到你!