Ubuntu:Android设备调试

Pok*_*oku 25 linux ubuntu android adb

我有一个HTC Desire,我想调试并运行我的Android应用程序.但是当我在Eclipse中获取Window,我可以在设备之间进行选择时,我的HTC Desire仅列出了问号(????????).我究竟做错了什么?

我试过这个:

在我的设备上启用USB调试,并在我的应用程序Manifest.xml文件中启用调试.

在终端我这样做:

  1. 以root身份登录并创建此文件:/etc/udev/rules.d/51-android.rules.
  2. SUBSYSTEM =="usb",SYSFS {idVendor} =="0bb4",MODE ="0666"
  3. sudo service udev restart

还有什么我可以尝试或忘记?

Ebo*_*ike 49

您需要使用sudo手动运行adb.如果您只是在没有sudo的情况下运行adb(或者如果您让Eclipse/ADT为您执行此操作),则它将没有查看您的设备所需的权限.

如果它已经运行,那么sudo adb kill-server和sudo adb start-server.

  • 看下面正确答案!我使用gnac回答没有su权限运行它.投票失败了 (3认同)

gna*_*nac 46

注意:EboMike接受的答案是不正确的.

我知道这是一个老问题线程,但我偶然发现它试图解决同样的问题.然而,接受的答案是不正确的.一旦正确设置了udev规则,就不需要以root身份运行adb服务器.

http://developer.android.com/tools/device.html中的第3步为您提供了正确的解决方案.具体来说,使用以下行添加或修改/etc/udev/rules.d/51-android.rules:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0666", GROUP="plugdev" 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,0bb4是HTC的供应商ID.0fff是Nexus One的产品ID.使用上面链接中的表格或lsusb来标识您设备的供应商ID和产品ID.例如

$ lsusb
Bus 001 Device 006: ID 18d1:4e22 Google Inc. Nexus S (debug)
Run Code Online (Sandbox Code Playgroud)

18d1是此特定设备的供应商ID,4e22是产品ID.如果要为所有用户启用对此设备的访问,则可以不使用"GROUP"定义.如果没有,请确保将自己添加到plugdev组中(如果您尚未加入).创建此文件后,重新启动或重新加载udev.

udevadm control --reload-rules
Run Code Online (Sandbox Code Playgroud)

如果您必须将自己添加到组中,则需要注销并重新登录.

使用"adb kill-server"杀死任何旧的adb服务器,插入您的设备并运行"adb devices".这将重新启动服务器,您现在应该可以看到您的设备.不需要以root身份运行adb,即使只是为了启动adb服务器.除非绝对需要,否则以root身份运行通常也是一个坏主意.