检测用于调试的设备(ADB)不起作用

时间:2011-06-26 13:35:25

标签: android adb

我在Archos 43 Internet Tablet(Android 2.3.26)上打开了USB调试,但adb没有检测到该设备。

我有Kubuntu 11.04。

输出shell命令“lsusb”:

michael@schlepptop777:~/.android_sdk/platform-tools$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 002: ID 0e79:1411 Archos, Inc. 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

所以我的“供应商ID”是0e79,不是吗?

下一步我创建了以下文件:

sudo kate /etc/udev/rules.d/51-android.rules

具有以下内容:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"

之后我设置了权限:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules

然后我保存了它并重新启动了udev:

sudo /etc/init.d/udev restart

完成所有这些步骤后,adb仍然无法显示我的设备:

michael@schlepptop777:~/.android_sdk/platform-tools$ ./adb devices
List of devices attached 
<empty line, because stackoverflow does not display this>

6 个答案:

答案 0 :(得分:33)

在某些情况下,您还必须将供应商ID添加到此文件中:~/.android/adb_usb.ini

# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE. 
0x0e79

请注意,升级SDK时可能会覆盖此文件,因此您可能需要在之后重新编辑它。

答案 1 :(得分:7)

Mageia 2

起初,我有类似的东西:

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 

然后我发现我需要做设置|应用|开发并检查USB调试复选框。

$ adb devices
List of devices attached 
???????????????? no permissions

以root身份尝试,我得到了:

$ su -l
# adb devices
List of devices attached 
???????????????? no permissions

然后我意识到adb仍然以普通用户身份运行。以root身份,当我做的时候:

# adb kill-server
# adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

ADB for Android Developers (ARCHOS Internet Tablet)很有帮助,除了我最后以root身份执行此操作:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",
SUBSYSTEM=="usb", ENV{PRODUCT}=="e79/*", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="e79", MODE="0666"
# udevadm control --reload-rules
# udevadm monitor
.
.
.
^C

monitor命令很有用,因为它显示设备连接,断开连接,路径等。

然后我能够以root身份停止服务器运行,并以普通用户身份启动它:

# adb kill-server
# exit
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 offline

“离线”时设备无效。为了解决这个问题,我必须重新启动Archos 43。

$ adb devices
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 device

虽然我怀疑这些操作是必需的,为了安全起见,重新启动后,我确保在设置USB调试开启之前插入USB并选择仅充电。我还禁用了WiFi和同步功能,但一旦开始工作,adb仍会与正在使用的人连接。

此时,下载我的应用程序:

$ adb install bin/HelloWorld.apk 
2914 KB/s (157589 bytes in 0.052s)
        pkg: /data/local/tmp/HelloWorld.apk
Success

P.S。第二天,我知道前一天晚上一切正常,我启动了我的开发系统并尝试再次连接。这给了“离线”状态。我禁用了同步和WiFi,没有重启Archos 43,然后adb devices显示“设备”状态而不是“离线”。我不知道该怎么做,但是关闭这些东西毕竟可能具有重要意义。

答案 2 :(得分:2)

执行命令sudo /etc/init.d/udev restart后,您必须重启系统! 我知道,这听起来像一个窗户的行为,但我发现这件事之前我已经摔了3个小时。

答案 3 :(得分:2)

我从SD卡读卡器上借了一根电缆,它不适用于adb,虽然它适用于SD卡读卡器。 我尝试了一种新的电缆,并且看不到adb设备识别设备!

答案 4 :(得分:1)

实际上,就像Aultbot一样,更换电缆也对我有用。奇怪的是,当我突然无法与ADB合作时,我使用电缆几个小时。

此外,请确保您接受手机上的连接(Android 4中的新安全功能)

编辑:最近,有关于adb服务的一些问题。如果未启动(使用netstat或类似功能检查或在运行adb命令以获取调试消息之前键入“set ADB_TRACE = 1”),请检查处理该错误消息的线程。一个常见问题是某个其他应用程序正在使用默认端口(通过在adb命令之前键入“set ANDROID_ADB_SERVER_PORT = 12345”来更改端口)。

答案 5 :(得分:0)

我在使用ubuntu 11.04,我可以通过将USB连接模式更改为“Windows Media Sync”来获取连接到Atrix的唯一方法。这首先是奇怪的,但它特别奇怪,因为当它设置为赢得媒体同步时,Windows上的ADB将无法连接。 或者您可以使用无线adb。有几个小部件可以很容易地启用wifi adb。它们显示小部件上的IP地址和所有内容。 :)