如何在Linux中使用我的Android手机调试我的应用程序?

5

我该如何在手机上而不是模拟器中调试我的Android应用程序?

我的操作系统是Linux。当我尝试连接我的移动设备进行调试时,它没有响应。


它是否在您的设备选项卡中显示为“????????????”这样的形式? - Padma Kumar
1
你正在使用哪个设备进行调试? - Padma Kumar
3个回答

8
这个问题在针对移动设备进行调试的文档中有解答:使用硬件设备。直接引用他们的文档:

  1. 在Android清单文件中将应用程序声明为“debuggable”。
    在Eclipse中,当查看Manifest时,您可以在右侧的Application选项卡中进行此操作(将Debuggable设置为true)。否则,在AndroidManifest.xml文件中,将android:debuggable =“true”添加到<application>元素中。

  2. 设置设备以允许安装非市场应用程序。
    在设备上,转到Settings > Applications并启用Unknown sources(在Android 4.0设备上,该设置位于Settings > Security中)。

  3. 在设备上打开“USB调试”。
    在设备上,转到Settings > Applications > Development并启用USB debugging(在Android 4.0设备上,该设置位于Settings > Developer options中)。

  4. 设置系统以检测您的设备。

    • <snip-不使用Windows或Mac OS X>
    • 如果您正在Ubuntu Linux上开发,则需要添加一个udev规则文件,其中包含您想要用于开发的每种类型的设备的USB配置。在规则文件中,每个设备制造商都由唯一的供应商ID标识,如ATTR{idVendor}属性所指定。有关供应商ID的列表,请参见下面的USB Vendor IDs。在Ubuntu Linux上设置设备检测:
      1. 以root身份登录并创建此文件:/etc/udev/rules.d/51-android.rules.
        使用此格式将每个供应商添加到文件中:
        SUBSYSTEM ==“usb”,ATTR {idVendor} ==“0bb4”,MODE =“0666”,GROUP =“plugdev”

        在此示例中,供应商ID适用于HTC。 MODE分配指定读/写权限,而GROUP定义拥有设备节点的Unix组。
        注意:规则语法可能因您的环境而略有不同。根据需要查阅系统的udev文档。有关规则语法的概述,请参见编写udev规则的指南。
      2. 现在执行:
        chmod a+r /etc/udev/rules.d/51-android.rules
你可以在SDK的platform-tools/目录下执行adb devices来验证设备是否已连接。如果已连接,你会看到设备名称列在“device”下。
如果使用Eclipse,请像往常一样运行或调试应用程序。你将看到一个设备选择器对话框,其中列出了可用的模拟器和连接的设备。选择要安装和运行应用程序的设备。
如果使用Android Debug Bridge(ADB),你可以使用-d标志发出命令以定位所连接的设备。

我按照上述步骤操作了,但在执行最后一条命令 chmod a+r /etc/udev/rules.d/51-android.rules 时,它显示找不到文件或目录。 - Narendra
@Narendra:你试过 sudo chmod a+r /etc/udev/rules.d/51-android.rules 吗?另外,你是在运行Ubuntu吗?你创建的文件末尾是否包含我复制文本时意外突出显示的 .?如果是这样,请从该步骤重新开始,并不要包含 . - 我编辑了说明以修复该错误 :) - Merlyn Morgan-Graham
不要仅执行此命令 "chmod a+r /etc/udev/rules.d/51-android.rules",等我试一下。 - Narendra
我尝试了 "sudo chmod a+r /etc/udev/rules.d/51-android.rules",但是还是遇到了同样的问题。 - Narendra
@Narendra:你 创建 了那个文件,所以它应该存在。你是否意外地在文件名后面加了一个 .(因为我曾经不小心告诉过你)?检查一下那个目录(ls)并查看哪些文件是存在的。 - Merlyn Morgan-Graham
显示剩余2条评论

4

设备开发设置

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

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

  2. 打开“USB调试”。

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

  4. 设置您的系统以检测您的设备。

如果您正在使用Ubuntu Linux进行开发,则需要添加一个udev规则文件,其中包含每种类型的设备的USB配置。在规则文件中,每个设备制造商都由唯一的供应商ID标识,如ATTR{idVendor}属性所指定。有关供应商ID的列表,请参见下面的USB供应商ID。要在Ubuntu Linux上设置设备检测:

  1. Log in as root and create the file /etc/udev/rules.d/51-android.rules.

  2. Use this format to add each vendor to the file:

    SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"
    
在这个例子中,供应商ID是HTC。MODE指定读/写权限,GROUP定义哪个Unix组拥有设备节点。 注意:规则语法可能因环境而异。必要时请参考您系统的udev文档。有关规则语法的概述,请参阅编写udev规则指南。 现在执行:
chmod a+r /etc/udev/rules.d/51-android.rules

我按照上述步骤操作了,但在执行最后一条命令 chmod a+r /etc/udev/rules.d/51-android.rules 时,它显示找不到文件或目录。 - Narendra
打开 /etc/udev/rules.d/ 文件夹并检查是否存在 51-rules 文件。 - Padma Kumar
请键入以下命令以授权您的 Android 规则文件:sudo chmod a+r /etc/udev/rules.d/51-,然后按 Tab 键选择您的 Android 规则文件并按 Enter 键。 - Padma Kumar

-1
在 Android 4.2 及更高版本中,“开发者选项”默认是隐藏的。要使其可用,请前往“设置”>“关于手机”,然后点击“版本号”七次。返回上一个屏幕即可找到“开发者选项”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接