【问题标题】:"Android device is not listed while running adb devices (ubuntu 10.10)" [duplicate]“运行 adb 设备(ubuntu 10.10)时未列出 Android 设备”[重复]
【发布时间】:2011-01-06 13:00:58
【问题描述】:

运行 adb devices 时,我的 Android 设备 Ly-706 未列出。

我可以使用 eclipse 运行模拟器并在模拟器上安装应用程序 除了在真实设备上使用 adb

我补充说:

SUBSYSTEM=="usb", SYSFS{idVendor}=="040d", MODE="0666"

/etc/udev/rules.d/90-android.rules,仍然没有运气

三星 Galaxy 3(vendor id ="04e8") 的结果相同

我安装了 GNU/Linux (ubuntu 10.10),因为它没有在 windows 中列出。

我错过了什么?

【问题讨论】:

  • 您尝试过其他设备吗?您使用的是哪种设备?您提供的代码没有出现在android提供的列表中。
  • @sheikh aman ,实际上那是一个中国设备,我用三星 Galaxy 3 试过了,我得到了同样的结果 -:(
  • @trojanfoe,我是 ubantu 新手,请告诉我该怎么做...?
  • "sudo /etc/init.d/udev restart" 就可以了
  • @trojanfoe,是的,我试过了,但我得到了相同的结果-:(

标签: android adb sudo device


【解决方案1】:

我总是第一次以 root 身份运行 adb,之后以普通用户身份运行。但是我运行了一个我暂停的虚拟机,所以我不必经常这样做。

你有正确的想法,解决方案最肯定的是你需要规则目录中文件的权限。我能提出的唯一建议是您使用了错误的供应商 ID。

查一下here

另外,为确保您在 root 下运行正确的 adb,请同时运行以下两项:

sudo adb kill-server
adb kill-server

之前:

sudo adb start-server

我发现只运行一个并不总是有效。

【讨论】:

  • hi hamid,感谢回复我用三星 Galaxy 得到了同样的结果......
  • 你好,当我运行 sudo adb start-server 时,我得到 'sudo adb command not found error' 同时可以在命令中不包含 sudo 的情况下运行
  • 需要将adb二进制文件复制到linux中的/bin目录下。我忘了提这个。因为 root 与普通用户的路径不同。不要忘记对其进行 chmod 以使其也可执行。这将解决未找到的问题。至于 Galaxy Tab,我每天开发一个,供应商 ID 是 04e8 我可以确认。
  • 感谢大家为我花费宝贵的时间,我的问题已解决 -;) 我添加了#samsung galaxy SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE= 70-persistent-net.rules 文件中的“0666”(在 /etc/udev/rules.d/ 中)所以我猜 unbantu 9.2 的更高版本我们需要将设备的供应商 ID 添加到该文件而不是 51-android 中。规则
  • 在文件中应该不会有所作为,但 04e8 不是您在最初问题中发布的供应商,也许这就是问题所在?
【解决方案2】:

作为一种临时解决方法,您可以尝试以 root 身份启动 adb 守护进程:

sudo adb kill-server sudo adb 设备

这对我有用,直到我设法正确设置了 udev。

【讨论】:

  • 这不是一个好办法。您应该让任何进程以 su 身份运行,直到绝对必要为止。这可能是您的规则本身的问题,例如,您可能没有为规则设置组,请参阅我的answer 了解更多信息。
  • 因此是回复的“临时解决方法”部分。
【解决方案3】:
sudo /etc/init.d/udev restart

因为 trojanfoe 的建议值得一试,但我想,无论如何,你在两者之间做了一些重启。

您是否尝试在 USB 插入设备之前重新启动 adb 服务器?这对我有帮助。

【讨论】:

    【解决方案4】:

    在我的情况下,它突然停止检测我的设备,但时不时检测到它,这让我抓狂。

    在多次杀死和重新启动后,USB 电缆出现问题。更改它解决了问题,但我不知道为什么会发生这种情况。

    【讨论】:

      【解决方案5】:

      SUBSYSTEM=="usb", SYSFS{idVendor}=="040d", MODE="0666" 规则实际上会授予对设备的访问权限,但问题可能是您的用户可能没有访问设备的权限。

      因为您没有为规则提供组,所以我不知道哪个组将拥有设备的默认访问权限(我猜udev 组可能会拥有它),如果你有跟随google's path of device setup (see section 3, third point, subsection a),你会发现你错过了规则中的GROUP子句。

      所以基本上你的规则应该是。

      UBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE=="0666", GROUP="plugindev"
      

      还可以使用命令groups 检查您是否在组plugindev 中。否则,只要您在小组中,您就可以在那里提供任何东西

      【讨论】:

        【解决方案6】:

        在 Ubuntu 10 LTS 之前,正确的命令只是简单地将 Google SDK 附带的 adb 复制到 /bin 目录,根据您的设备插入该行

        /etc/udev/rules.d/70-persistent-net.rules:
        
        #Acer
        SUBSYSTEM=="usb", ATTR{idVendor}=="0502", MODE="0666"
        #Dell
        SUBSYSTEM=="usb", ATTR{idVendor}=="413c", MODE="0666"
        #Foxconn
        SUBSYSTEM=="usb", ATTR{idVendor}=="0489", MODE="0666"
        #Garmin-Asus
        SUBSYSTEM=="usb", ATTR{idVendor}=="091E", MODE="0666"
        #Google
        SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666"
        #HTC
        SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666"
        #Huawei
        SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666"
        #Kyocera
        SUBSYSTEM=="usb", ATTR{idVendor}=="0482", MODE="0666"
        #LG
        SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
        #Motorola
        SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666"
        #Nvidia
        SUBSYSTEM=="usb", ATTR{idVendor}=="0955", MODE="0666"
        #Pantech
        SUBSYSTEM=="usb", ATTR{idVendor}=="10A9", MODE="0666"
        #Samsung
        SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666"
        #Sharp
        SUBSYSTEM=="usb", ATTR{idVendor}=="04dd", MODE="0666"
        #Sony Ericsson
        SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666"
        #ZTE
        SUBSYSTEM=="usb", ATTR{idVendor}=="19D2", MODE="0666"
        

        然后重启udev和adb

        sudo service udev restart
        adb kill-server ; adb kill-server
        

        它似乎在 Ubuntu 11 中发生了变化,另外,可能有可能让 Ubuntu 读取您指定的任何文件 .rules,我只是不知道如何。

        【讨论】:

          【解决方案7】:

          在编辑 sudoers 之前,我遇到了同样的错误。 您可以获取您的平台工具和 android SDK 的工具文件夹的路径和 输入:

          sudo gedit /etc/sudoers
          edit line `<<<<<      Defaults      secure_path=" >>>>>` 
          

          在那里完成路径并享受。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2014-12-18
            • 2014-10-03
            • 1970-01-01
            • 1970-01-01
            • 2018-12-03
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多