android - adb 设备命令不起作用

我正在运行 Ubuntu 10.10 64 位。我安装了 ia32-libs 和 Android Debug Bridge 1.0.26 版。

我的问题:

  1. adb devices >>> ????????????没有权限
  2. sudo adb devices >>>> sudo: adb: command not found
  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

我使用运行 CM6.1 的 root Moto Droid 和运行基于 CM7 的 ROM 的 root G-Tab 得到相同的结果。

我查看了以下相关帖子:

  • http://forum.xda-developers.com/archive/index.php/t-522827.html
  • http://ubuntuforums.org/archive/index.php/t-1164359.html
  • adb command not found in linux environment

我尝试了大部分(不是全部)建议,但未能解决我的问题。我没有尝试的事情似乎不合适。如果您再提供一些提示,我将不胜感激,我会继续排除故障。

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

编辑:已解决感谢 EboMike 和 RivieraKid。这实际上是两个不同的问题:

  1. 上面的第 2 项(sudo: adb: command not found)通过如下的符号链接(symbolic link)得到解决:

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb
    

    这让我可以按照 EboMike 的建议使用 this solution .我的 Moto Droid 需要这样做。 (不过,对于我的 Viewsonic G-Tablet,不需要以 sudo 运行 adb。)

  2. 按照 RivieraKid 的建议(来自 link),通过实现 udev 规则解决了我的其他两项问题。

最佳答案

One thing I didn't try was editing /etc/udev/rules.d/70-android.rules. Is that likely to be the issue?

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

如果不正确遵循 instructions,您将无法使用 adb .

但是,考虑到这一点,您没有说明您使用的是哪个版本的 Ubuntu,但我遇到了 10.10 的问题 - 如果您需要我发布我的规则文件的内容,请告诉我。

不用担心通过 sudo 运行 adb,你不需要它。 udev 规则中的 MODE="0666" 允许您以任何用户身份访问设备。


编辑:

别忘了重新加载规则:

sudo udevadm control --reload-rules

编辑#2:

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

sudo adb kill-server

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

https://stackoverflow.com/questions/5510284/

相关文章:

linux - 发送电子邮件的 Shell 脚本

python - 为什么 print 在 lambda 中不起作用?

linux - 我的环境变量是什么?

python - Queue.Queue 与 collections.deque

linux - 对于高级用户来说,有哪些优秀的 Linux/Unix 书籍?

linux - 如何更改 Ubuntu 中的默认 GCC 编译器?

python - 从动态导入的模块中的类的字符串名称动态实例化?

python - 如何在 Python 中获取 PATH 环境变量分隔符?

python - 如何让 Pylint 识别 NumPy 成员?

python - django 测试应用程序错误 - 创建测试数据库时出错 : permission