【问题标题】:Can't find android device using "adb devices" command使用“adb devices”命令找不到安卓设备
【发布时间】:2011-05-17 06:13:34
【问题描述】:

我正在macOS 上开发Android 应用程序,我的应用程序在模拟器上运行良好。我想在设备上运行它,但是当我运行 adb devices 时,我什么也得不到。

localhost:platform-tools BF$ adb devices 
List of devices attached 

localhost:platform-tools BF$

我已经查看了参考资料中关于“为开发设置设备”的文档。我一步一步做完了所有的事情。

在文档中,有一些词:设置您的系统以检测您的设备。如果你在 Mac OS X 上开发,它就可以工作。跳过这一步。

现在,我找不到任何解决方案。是否需要针对 Android 设备的特殊驱动程序?

【问题讨论】:

  • 您是否在设备上启用了 USB 调试?您可以将设备安装为 USB 大容量存储设备以测试 USB 接口是否正常工作?你可以试试不同的电脑或安卓设备吗? Mac OS 是否有任何系统日志会列出新连接的 USB 设备的 VID/PID
  • 是的。我已经在设备上启用了 USB 调试。好的。我稍后会尝试一些解决方案。感谢您的热心帮助~~~我可以看到设备中的存储卡。但使用“adb devices”无法列出设备。

标签: android adb device


【解决方案1】:

我知道这个帖子很旧,但我认为这仍然会有所帮助。几乎所有时间都“它只是在 OS X 上工作”,但有时新的/原型或晦涩的设备不会被选中。尝试通过这些步骤来帮助它(我现在不在我的 Mac 附近,但我昨晚做了这个,我想我记得):

  1. 打开 System Profiler 并在 USB 上找到设备。查看其详细信息以查找供应商 ID。例如,摩托罗拉设备将显示 0x2bb8。或者只是谷歌你的供应商的硬件ID。

    如果没有显示,请务必尝试不同的电缆。如果您有有效的数据线,Android 文件传输非常适合检测设备。

  2. 编辑 ~/.android/adb_usb.ini 以包含该供应商 ID。如果文件不存在,则仅使用该行创建它。

  3. 重启亚行

    adb kill-server 
    adb start-server
    
  4. 也许拔掉/插入你的手机。

希望你能看到你的设备。

【讨论】:

  • 我最初是为 Kindle Fire 做的。我刚刚通过 Eclipse 管理器更新了一堆 android 文件,它“重置”了我的旧 adb_usb.ini。再次将 0x1949 的 KF id 添加到 adb_usb.ini 后,我将设备拔出/插入回 USB 和中提琴。
  • 是的,是的!非常感谢你,贾维斯特夫。你是英雄。编辑 ~/.android/adb_usb.ini 是要走的路!
  • 它在 sdk v22 中不起作用。如果我在 adb_usb.inifile 中添加了文本。在我adb kill-server 之后,我无法通过adb start-server 启动服务器。它会抱怨* daemon not running. starting it now on port 5037 *. ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon。只有清除添加的文本才能恢复!
  • @Sean 您可能错误地编辑了文件。一开始我遇到了同样的问题,因为我在生成的 cmets 和供应商 ID 之间留下了一个空行。然后通过删除文件中的每个空行来解决该问题。 HTH
  • @JustinLau:当我在供应商 ID 之后 有一个空白行时,我也遇到了同样的情况。正如您所说,删除每个空行解决了该问题(服务器现在成功启动)。但是,adb 仍然看不到我的设备。 :-(
【解决方案2】:

您是否有机会在连接到 Mac 时也使用 EasyTether 应用程序?如果您碰巧使用了这个应用程序,那么您很幸运,因为解决方案是调用:

sudo kextunload -v /System/Library/Extensions/EasyTetherUSBEthernet.kext

来自终端。我忘了你是否必须重新启动。

这将禁用网络共享,但您现在可以通过 adb 查看您的设备。

要在完成调试后重新启用网络共享,请使用

sudo kextload -v /System/Library/Extensions/EasyTetherUSBEthernet.kext

当然,如果你不使用 EasyTether,那么希望其他人有一个想法......

【讨论】:

  • 不,我的 Mac 上不存在这样的软件。
  • 我完全困惑为什么我再也看不到我的 Android 设备了,而你完全拯救了我的一天!我不知道这是问题所在,谢谢一百万!
  • 谢谢!你是如何发现是 EasyTether kext 导致了这个问题?我很想知道你是怎么做到的。
  • EasyTether mobile-stream.com/easytether/android_faq.html#adbmacosx 的常见问题解答。
  • 我实际上注意到,一旦发现设备,我可以重新启用网络共享,并且它会保持与 adb 的注册状态。
【解决方案3】:

同样的问题。 osx 10.6.6 和 adb 设备 $ ./adb 设备 附加设备列表 ...空的....

重启手机没有帮助;尽管在启动过程中它与 adb devices 一起列出了一秒钟。

在 androidsettings->应用程序中打开了调试

最终成功的原因是:关闭并再次打开调试模式。

【讨论】:

    【解决方案4】:

    如果您在使用 Lollipop (Android 5.*) 时遇到这样的问题,也许你们应该做一个简单的步骤,就像我在 ADB(我使用 Ubuntu)拿到手机之前所做的那样:

    将 USB PC 连接类型更改为“发送图像(PTP)” (在我使用“媒体设备(MTP)”之前)

    就像这样:

    别忘了激活“USB 调试”复选框。

    【讨论】:

      【解决方案5】:

      我今天遇到了这个问题,手机在连接时正在充电,但 Mac 看不到。原来我使用的微型 USB 数据线仅用于充电,不用于数据传输。一旦我更换了 USB 电缆,它就开始正常工作了。

      【讨论】:

      • 难以置信,但这是真的!我错误地使用了另一根今天看起来一样的数据线,它可以充电但数据无法使用。通过阅读您的答案,我意识到了这一点,更换并且有效!谢谢!
      • 这对我来说已经好几次了。您会认为较新的电缆可以使用,但事实证明通常是较旧的“普通”电缆。
      • 对这个也很惊讶,不过果然是问题所在
      【解决方案6】:

      如果adb devices 未列出设备,尽管您已将其插入系统,您需要确保在Developer Options 选项卡中选中Settings 下的USB debugging 选项。在 Android 4.2.2 及更高版本(据我观察)下,Developer Options 是隐藏的,除非明确显示。要激活Developer Options,请点击Settings > About device > Build number 7 次。完成后,返回Settings > Developer Options 并激活USB Debugging

      使用adb version 1.0.31,我能够使设备可见。

      【讨论】:

      • 这就是让我的廉价阿尔卡特 OneTouch 出现所需要的一切。我现在可以用它来测试cordova。
      【解决方案7】:

      Referenced from this link!

      这仅适用于 MAC!

      您需要执行以下操作才能让 adb 看到您的手机:

      1. 打开终端(应用程序/实用程序/终端)
      2. cd /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/IOUSBCompositeDriver.kext/Contents
      3. sudo nano Info.plist(或 vi、emacs 或您喜欢的任何控制台编辑器)
      4. 复制IOUSBComposite 部分(从<key></dict>
      5. 将该部分粘贴到第 66 行(就在它出现的位置之后),这样文件中就有 2 个副本
      6. bDeviceSubClass 值从 0 更改为 2
      7. 将密钥名称从IOUSBComposite 更改为GW620

      最终结果应该是这样的:

                          <key>GW620</key>
                          <dict>
                                  <key>CFBundleIdentifier</key>
                                  <string>com.apple.driver.AppleUSBComposite</string>
                                  <key>IOClass</key>
                                  <string>IOUSBCompositeDriver</string>
                                  <key>IOProviderClass</key>
                                  <string>IOUSBDevice</string>
                                  <key>bDeviceClass</key>
                                  <integer>0</integer>
                                  <key>bDeviceSubClass</key>
                                  <integer>2</integer>
                          </dict>
      

      1. sudo diskutil repairpermissions / 让它完成
      2. sudo touch /System/Library/Extensions 并等待几分钟让扩展重新索引完成
      3. adb devices 现在应该可以看到您的手机了

      注意,这是非常笨拙的,并且可能会在每次 OSX 自我更新时中断,但它可以工作。每次我想在手机上工作时,我终于可以停止重新启动了! :D

      【讨论】:

      • 这对我有用!,nexus 4(也是一个 lg 模型)。需要重启 osx 才能生效。另外,请注意,如果您搞砸了 Info.plist 的编辑,您可能会失去与 USB 键盘/鼠标的连接! (幸运的是我附近有一个蓝牙键盘) - 在 OSX v10.6.8 上工作
      • 在小牛队为我工作,不需要重新启动。
      • 在 El Capitan (10.11.3) sudo diskutil repairpermissions / 上只会给出错误消息 diskutil: did not recognize verb "repairpermissions"; type "diskutil" for a list。关于如何绕过它的任何想法?
      • 这对我有用,但奇怪的是,我需要做的只是 打开 步骤 2) 中的目录内容......仅此而已,所有突然我的 macbook 开始识别我的设备。我已经尝试了所有其他补救措施,但这个问题正在杀死我。谢谢!
      【解决方案8】:

      我遇到了这个问题。事实证明我的解决方法是更换我正在连接的 USB 电缆。我改回使用手机随附的数据线,它可以正常工作。

      使用三星 Galaxy Player 和三星 micro USB。

      是的。这太愚蠢了。

      【讨论】:

      • 我想知道这是不是我的问题。我在使用三星 Galaxy Tab 4、7" 时遇到问题。不过不知道它是否附带电缆。
      【解决方案9】:

      如果在 Mac OS X 上使用 adb devices 则不会显示任何设备,当然,您已在设备上启用 USB 调试 (请参阅http://developer.android.com/tools/device.html),然后尝试:

      $ android update adb
      adb has been updated. You must restart adb with the following commands
          adb kill-server
          adb start-server
      

      然后:

      $ adb kill-server
      $ adb start-server
      * daemon not running. starting it now on port ... *
      * daemon started successfully *
      

      最后:

      $ adb devices
      List of devices attached 
      ......  device
      

      您的设备现在应该在列表中。

      【讨论】:

      • 确实,我手机中的 USB 调试选项对我有用。我之前启用了它,所以我认为它仍然启用,因此我花了很长时间才意识到实际上仔细检查了该选项。原来它会自动关闭。
      • 打开 USB 调试对我有用。 (我什至不必杀死 adb 服务器。)这很奇怪,因为我在其他地方读到我应该关闭关闭 USB 调试。
      【解决方案10】:

      在 Mac Lion 上:

      我只需要转到/path/to/android-sdk/tools 并运行android adb update 即可检测到设备。

      【讨论】:

      • 当我在工具文件夹中运行 android update adb 时,它会回复“找不到命令”。没有工作。
      【解决方案11】:

      确保您的设备在 SDK 包上安装了相同/更高的 API 级别。

      示例:

      我的 Xperia Play 上有 Android 2.3.4。如果我的 Mac 上只安装了 API 10 (Android 2.3.3),ADB 不会检测到我的设备。当我安装 SDK 11 (Android 3.0) 时——因为我没有找到任何适用于 2.3.4 的 SDK 包,所以 ADB 工作正常。

      希望对你有所帮助。

      【讨论】:

        【解决方案12】:

        重新启动 adb 服务器对我有用,在模拟器、vmwware 和虚拟机中

        adb kill-server
        adb start-server
        

        如果您使用的是虚拟机,请确保您分配了一个 IP:

        Alt + 1
        type: netcfg
        

        返回:

        Alt + 7
        

        如果你有:

         eth0: DOWN 0.0.0.0/XX
        

        将您的配置更改为:

        NAT or BRIDGE
        

        重启虚拟机和服务器,再试一次。

        如果您使用的是手机或平板电脑:

        • 拔下您的设备

        • 稍等片刻,重新插上电源

        • 并重启 adb 服务器

        希望对你有帮助

        【讨论】:

          【解决方案13】:

          您需要正确安装 USB 驱动程序并在设置中启用调试。如果这些都不起作用,则您的设备可能有问题。

          还有see this

          【讨论】:

            【解决方案14】:

            我在 Windows 7 上遇到了同样的问题。碰巧我正在使用 USB 网络共享功能以及尝试使用 adb。这个Usb tether and debug at the same time有一些解决方法

            【讨论】:

              【解决方案15】:

              仅仅因为您的 Android 设备处于开发者模式,并不意味着它启用了 USB 调试!!进入设置 > 开发人员选项,然后启用“USB 调试”,然后您应该会看到您的设备。这是一个很容易被忽视的常见错误。

              【讨论】:

                【解决方案16】:

                我安装了 Xamarin 并尝试使用 Unity。基本上在任何情况下,您都必须杀死任何可能通过ADB 与您的设备通信的应用程序

                【讨论】:

                  猜你喜欢
                  • 2014-04-27
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-05-10
                  • 1970-01-01
                  • 1970-01-01
                  • 2012-11-14
                  相关资源
                  最近更新 更多