adb devices命令不起作用

Mou*_*inX 86 linux ubuntu android adb

我正在运行Ubuntu 10.10 64位.我安装了ia32-libs以及Android Debug Bridge版本1.0.26.

我的问题:

  1. adb devices>>> ???????????? 没有权限
  2. sudo adb devices >>>> sudo:adb:命令未找到
  3. adb shell >>>错误:设备权限不足

我想这些都是相关的.这是相关信息.

$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools

$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb

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

$ sudo adb devices
sudo: adb: command not found

$ adb shell
error: insufficient permissions for device
Run Code Online (Sandbox Code Playgroud)

我使用运行CM6.1的根管理Moto Droid和运行基于CM7的ROM的根G-Tab获得相同的结果.

我查看了以下相关帖子:

我尝试了大多数(不是全部)建议,但我无法解决我的问题.我没试过的东西似乎不合适.我会感谢一些提示,我会继续排除故障.

我没有尝试的一件事是编辑/etc/udev/rules.d/70-android.rules.这可能是问题吗?我看不出这会导致"sudo:adb:command not found".也许我的问题并非全部相关.无论如何,在这一点上,我认为我需要来自其他人的一些意见,因为我不相信我有路径问题或其他帖子中讨论的其他常见问题.

编辑:解决了EboMike和RivieraKid.这实际上是两个不同的问题:

  1. 上面的项目#2(sudo:adb:command not found)通过创建符号链接来解决,如下所示:

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
    
    Run Code Online (Sandbox Code Playgroud)

    这让我可以像EboMike建议的那样使用这个解决方案.这样做是我的Moto Droid所必需的.(正如须藤执行adb 要求我的优派G-平板电脑,但是.)

  2. 我的其他两个项目通过实现像RivieraKid建议的udev规则来解决(从此链接).

Riv*_*Kid 87

我没有尝试的一件事是编辑/etc/udev/rules.d/70-android.rules.这可能是问题吗?

你没有这样做的任何特殊原因?回答这个问题 - 是的!udev规则通知Ubuntu您的设备是什么,并允许用户空间工具访问它.

如果没有正确遵循说明,您将无法使用adb .

考虑到这一点,你没有说你正在使用的是什么版本的Ubuntu但是我遇到了10.10的问题 - 如果你需要我发布我的规则文件的内容,请告诉我.

不要担心通过sudo运行adb,你不需要它.在MODE="0666"从udev规则允许您使用该设备的任何用户.


编辑:

不要忘记重新加载规则:

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

编辑#2:

正如@Jesse Glick正确指出的那样,如果adb已经在守护进程模式下运行,你还需要重新启动它以使其工作:

sudo adb kill-server
Run Code Online (Sandbox Code Playgroud)

我在这里使用过sudo,因为这样可以保证adb会被杀死,这是官方支持的停止服务器的方法.它会在下次使用adb时自动重启,但这次使用的环境正确.


Ebo*_*ike 22

您需要以root身份重新启动adb服务器.看到这里.


lar*_*kee 13

在我的Gentoo/Funtoo Linux系统上,我遇到了类似的问题:

我总是得不到正确的设备描述和不足的权限:

# sudo ./adb devices
List of devices attached 
????????????    no permissions
# ./adb usb
error: insufficient permissions for device
Run Code Online (Sandbox Code Playgroud)

对我来说,帮助HOWTO来自谷歌.在我的情况下,我需要添加udev规则:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 
Run Code Online (Sandbox Code Playgroud)

并设置文件系统权限

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

重新插入智能手机后,手机的访问成功,现在也出现在Eclipse的Android设备选择器中:

# sudo ./adb devices
List of devices attached 
3XXXXXXXXXXXXXC device
# sudo ./adb usb
restarting in USB mode
Run Code Online (Sandbox Code Playgroud)

您还必须检查用户对plugdev -group 的成员身份.