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

Spi*_*777 30 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
Run Code Online (Sandbox Code Playgroud)

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

在下一步中,我创建了以下文件:

sudo kate /etc/udev/rules.d/51-android.rules
Run Code Online (Sandbox Code Playgroud)

具有以下内容:

SUBSYSTEM=="usb", SYSFS{idVendor}=="0e79", MODE="0666"
Run Code Online (Sandbox Code Playgroud)

之后我设置了权限:

sudo chmod a+rx /etc/udev/rules.d/51-android.rules
Run Code Online (Sandbox Code Playgroud)

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

sudo /etc/init.d/udev restart
Run Code Online (Sandbox Code Playgroud)

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

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

Jar*_*iuk 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
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,我刚刚使用了以下教程:http://www.archos.com/support/support_tech/updates.html?country = us&lang = en(章节:面向Android开发者的ADB(ARCHOS Internet Tablet))它是平等的给你的建议:) (2认同)
  • 我总是忘记在id之前添加"0x".太令人沮丧了!!! 非常感谢! (2认同)

kbu*_*ien 7

Mageia 2

起初,我有类似的东西:

$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
Run Code Online (Sandbox Code Playgroud)

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

$ adb devices
List of devices attached 
???????????????? no permissions
Run Code Online (Sandbox Code Playgroud)

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

$ su -l
# adb devices
List of devices attached 
???????????????? no permissions
Run Code Online (Sandbox Code Playgroud)

然后我意识到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
Run Code Online (Sandbox Code Playgroud)

适用于Android开发者的ADB(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
Run Code Online (Sandbox Code Playgroud)

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
Run Code Online (Sandbox Code Playgroud)

"脱机"时设备无法运行.为了解决这个问题,我必须重新启动Archos 43.

$ adb devices
List of devices attached 
A43-A44C0002-9BF80000-0C60C4CC-0D020027 device
Run Code Online (Sandbox Code Playgroud)

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

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

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

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