Android调试技巧

时间:2010-07-23 01:28:13

标签: android debugging

我的程序经常崩溃。我无法在LogCat中看到任何内容或在其他地方看到有用的信息,以找出问题所在。我唯一看到的是某种例外。这是不可接受的,使Android编程几乎不可能。我确信必须有一些额外的调试帮助,但经过数周的搜索,什么都没有。

有没有人提示如何在程序中找到一个简单崩溃的错误?

一般问题我知道,但如果没有答案,我将不得不放弃尝试为Android开发应用程序。我不能花几周时间寻找每一个简单的错误。

5 个答案:

答案 0 :(得分:3)

还有实际的Eclipse调试器。如果您只是使用调试器运行程序直到它崩溃,您可能看不到特别有用的堆栈跟踪。但是如果你在崩溃之前的代码中添加一个或两个断点,你可以仔细检查并找出问题所在。

此外,尽管我还不熟悉Android开发,但我的经验是,我的代码中的大多数神秘崩溃基本上都是ClassCastException。仔细查看从一个类到另一个类的所有地方,并确保你没有假设某种类型的东西实际上没有。

答案 1 :(得分:1)

听起来好像你的android安装中有错误。 LogCat有时会混淆并与虚拟设备断开连接(在此处讨论:getting blank screen in logcat)。

但你的问题听起来更严重。我知道这很痛苦,但考虑重新安装你的Android开发系统(包括一个全新的Eclipse安装)。

我遇到了类似的问题,并且全新安装有很多帮助(特别是在几次升级之后 - 事情会变得相当混乱)。

祝你好运。

答案 2 :(得分:1)

这是一个完整的远景,但结果是这个Android新手的答案:你确定你的设备已连接?

在我的案例中发生了什么(这让我认为我的应用程序没有报告崩溃到LogCat)是我认为我调试的结果不是我的手机,而是我碰巧的Android模拟器在同一时间运行。当我意识到这种情况发生时,我退出了模拟器,并且logcat停止了。

当我再次运行logcat时,事实证明它甚至找不到我的手机:

$ ./adb logcat
- waiting for device -

从那里开始,我不得不通过一些箍来识别我的手机,例如adb not finding my device / phone (MacOS X)enabling debugging on the phone。最后,我不得不set android:debuggable=true

在杀死adb并再次运行logcat之后,我正在查看正确的日志,并且可以看到崩溃异常。

答案 3 :(得分:0)

实际上,我不确定您是否正在经历正常的崩溃。它可能是一个ANR或类似的现象,将一切锁定。这可能会让您从应用程序中看到更少的日志。我认为与我合作的其他环境相比,android的调试支持非常优雅。

答案 4 :(得分:0)

按照红色数字。您需要处于调试视图

1)单击引发异常的事件 2)导航为该事件生成的变量 3)点击“e” 4)查看detailMessage

enter image description here