在没有调试器的设备上调试Android应用程序

时间:2010-11-20 15:25:08

标签: android debugging

我处在绝望的境地。

我正在上网本的Ubuntu 10.04上使用Eclipse中的ADT开发一个Android应用程序。

不幸的是,上网本的功能不足以运行设备模拟器(当我尝试时总会出现问题)。然后,我尝试在设备上调试,但不幸的是我的手机(Pulse)似乎有一些问题。

好像我无法调试。我已经花了好几个小时试图让它工作。我现在无法升级我的上网本/手机。

我唯一能做的就是在Eclipse上开发并在手机上运行应用程序 在我的手机上运行应用程序时,有什么方法可以调试吗?我可以创建一个包含错误/警告的日志,甚至是我在代码中添加的一些自定义消息吗?

这是什么情况。

任何帮助都将不胜感激。

谢谢,

4 个答案:

答案 0 :(得分:2)

设备调试应该有效。确保您的应用程序清单中有android:debuggable="true"。我之前遇到过调试问题,这些问题在重启设备后自行修复。

或者,您可以使用the Log class打印日志消息。通过运行adb logcat或在Eclipse的logcat视图中可以看到这些。

修改

似乎在某些设备上,您必须从echo 1 > /sys/kernel/logger/log_main/enable运行adb shell才能启用日志记录。

答案 1 :(得分:1)

使用Android设备,您可以像在模拟器上一样开发和调试Android应用程序。在开始之前,只需要做几件事:

1在Android Manifest中将您的应用程序声明为“debuggable”。     android:debuggable =“true”到元素

2设置您的设备以允许安装非市场应用程序。

在设备上,转到设置>应用程序并启用未知来源(在Android 4.0设备上,该设置位于设置>安全性中)。

3打开设备上的“USB Debugging”。

在设备上,转到设置>应用程序>开发并启用USB调试(在Android 4.0设备上,该设置位于设置>开发人员选项中)。

4设置系统以检测设备。         如果您在Windows上进行开发,则需要为adb安装USB驱动程序。如果您使用的是Android开发者手机(ADP),Nexus One或Nexus S,请参阅Google Windows USB驱动程序。否则,您可以在OEM USB驱动程序文档中找到指向相应OEM驱动程序的链接。         如果你在Mac OS X上进行开发,它就可以了。跳过此步骤。         如果您正在使用Ubuntu Linux进行开发,则需要添加一个udev规则文件,其中包含您要用于开发的每种类型设备的USB配置。在规则文件中,每个设备制造商都由唯一的供应商ID标识,由ATTR {idVendor}属性指定。有关供应商ID的列表,请参阅下面的USB供应商ID。要在Ubuntu Linux上设置设备检测:             以root身份登录并创建此文件:/etc/udev/rules.d/51-android.rules。

        Use this format to add each vendor to the file:
        SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

        In this example, the vendor ID is for HTC. The MODE assignment specifies read/write permissions, and GROUP defines which Unix group owns the device node.

        Note: The rule syntax may vary slightly depending on your environment. Consult the udev documentation for your system as needed. For an overview of rule syntax, see this guide to writing udev rules.
        Now execute:
        chmod a+r /etc/udev/rules.d/51-android.rules

您可以通过SDK platform-tools /目录中的adb设备验证您的设备是否已连接。如果已连接,您将看到设备名称列为“设备”。

如果使用Eclipse,请照常运行或调试应用程序。您将看到一个“设备选择器”对话框,其中列出了可用的仿真器和连接的设备。选择要安装的设备并运行该应用程序。

如果使用Android调试桥(adb),您可以使用-d标志发出命令以定位已连接的设备。

答案 2 :(得分:0)

您可以通过SDK中包含的名为DDMS的工具直接调试Android应用程序。使用Eclipse,插件会为您整合所有内容:只需双击边距,在要停止的行上创建断点,然后点击“调试”按钮(窗口顶部的小错误)。程序将在设备上启动,设备将显示“等待调试程序附加”的消息。该消息应在几秒钟内消失,并将在您放置断点的行停止。

对于创建日志,您可以使用android.util.Log类:

import android.util.Log;
...
Log.e("MYAPPLICATION", "my message");

这应该显示在eclipse的“Logcat”视图中。

答案 3 :(得分:0)

我不明白为什么你无法在设备上进行调试。只需按照此article确认您的设备已被Ubuntu识别。