3.8使用Log.d和LogCat进行调试
问题
通常Java代码编译没有错误,但有时运行的应用程序崩溃,给出“强制关闭”(或类似)错误消息。
解
使用LogCat消息调试代码对于发现自己处于这种情况的开发人员是一个有用的技术。
讨论
熟悉Java编程的人可能在调试他们的代码时使用了System.out.println语句。类似地,可以通过使用Log.d()方法来调试Android应用程序。这使您能够在LogCat窗口中打印必要的值和消息。首先导入Log类:
import android.util.Log;
然后,在代码中要检查应用程序状态的位置插入以下行:
Log.d(“Testing”,“Checkpoint 1”);
测试是出现在LogCat窗口的“标签”列中的标签,如图3-22所示;通常这将被定义为主类中的常量,以确保拼写一致。检查点1是显示在LogCat窗口中的消息列中的消息。 Log.d接受这两个参数。对应于这些,在LogCat窗口中显示适当的消息。因此,如果您已将此Log.d语句插入为检查点,并且您获得了LogCat窗口中显示的Checkpoint 1消息,则意味着该代码在此点之前运行正常。
Log.d()方法不接受变量参数,因此如果您希望格式化多个项目,请使用字符串连接或String.format(但省略尾随的%n):
Log.d(“Testing”,String.format(“x0 =%5.2f,x1 =%5.2f”,x0,x1));
图3-22。调试输出
问题
通常Java代码编译没有错误,但有时运行的应用程序崩溃,给出“强制关闭”(或类似)错误消息。
解
使用LogCat消息调试代码对于发现自己处于这种情况的开发人员是一个有用的技术。
讨论
熟悉Java编程的人可能在调试他们的代码时使用了System.out.println语句。类似地,可以通过使用Log.d()方法来调试Android应用程序。这使您能够在LogCat窗口中打印必要的值和消息。首先导入Log类:
import android.util.Log;
然后,在代码中要检查应用程序状态的位置插入以下行:
Log.d(“Testing”,“Checkpoint 1”);
测试是出现在LogCat窗口的“标签”列中的标签,如图3-22所示;通常这将被定义为主类中的常量,以确保拼写一致。检查点1是显示在LogCat窗口中的消息列中的消息。 Log.d接受这两个参数。对应于这些,在LogCat窗口中显示适当的消息。因此,如果您已将此Log.d语句插入为检查点,并且您获得了LogCat窗口中显示的Checkpoint 1消息,则意味着该代码在此点之前运行正常。
Log.d()方法不接受变量参数,因此如果您希望格式化多个项目,请使用字符串连接或String.format(但省略尾随的%n):
Log.d(“Testing”,String.format(“x0 =%5.2f,x1 =%5.2f”,x0,x1));
图3-22。调试输出