adb找不到我的设备/手机(MacOS X)

dus*_*ine 165 android adb

在Mac上进行Android开发,这款手机我没有出现在adb的设备列表中.很多其他手机和设备对我来说都很好,所以我知道我的设置很好.

我在手机上启用了调试(设置 - >应用程序 - >开发 - > USB调试),但是当我运行时它没有显示 adb devices

dus*_*ine 330

附加更新:不要低估好USB线的价值.有时只是交换电缆会有所帮助.

~/.android/adb_usb.ini必须删除更新版本的adb的更新.

执行摘要: 将供应商ID添加到~/.android/adb_usb.ini并重新启动adb

完整详情: 大多数情况下,无需任何操作即可让Mac识别手机/设备.说真的,99%的时间"它只是有效".

话虽这么说,重置adb的最快方法是按顺序使用以下命令重新启动它:

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

但是偶尔adb devices命令无法找到你的设备.也许如果你正在使用一些实验或原型或不同寻常的设备,也许它只是未知的,不会出现.

您可以通过告诉设备的"供应商ID"来帮助adb找到您的设备,从根本上提供一个提示.这可以通过将十六进制供应商ID放在文件中来完成~/.android/adb_usb.ini

但首先您必须找到供应商ID值.幸运的是,在Mac上这很容易.启动系统信息应用程序.它位于/Applications/Utilities/文件夹中,或者您可以通过屏幕左上角的Apple菜单访问它,选择"关于此Mac",然后单击"更多信息..."按钮.屏幕抓取在这里:

系统信息,硬件USB树

展开"硬件"树,选择"USB",然后查找目标设备.在上面的例子中,我的设备名为"SomeDevice"(我在photoshop中这样做是为了隐藏真正的设备制造商).另一个例子是三星平板电脑显示为"SAMSUNG_Android"(顺便说一句,我没有做任何特别的事情来使三星平板电脑工作.)无论如何,点击你的设备,完整的细节将显示在下面的窗格中.这是它列出供应商ID的地方.在屏幕截图中的示例中,值是0x9d17- 在下一个命令中使用此值

echo 0x9d17 >> ~/.android/adb_usb.ini
Run Code Online (Sandbox Code Playgroud)

没关系,如果你之前还没有这个adb_usb.ini文件,大部分时间都不需要找到你的设备,所以这个文件不存在并不罕见.上面的命令将创建它或附加到它的底部(如果它已经存在).现在运行上面列出的命令重新启动adb,你应该好好去.

adb kill-server ; adb devices

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

  • 对我来说这是电缆 - 非常感谢 (13认同)
  • 这是电缆,我简直不敢相信,与indipad表一起使用的电缆不起作用! (5认同)
  • 是的,对我来说也是电缆!我正在搜索有关驱动程序和配置文件的内容,但它只是电缆!感谢您的额外更新 (5认同)
  • 电缆问题也在这里。谢谢! (5认同)
  • 不要小看那根电缆!尝试了一切,它是电缆! (3认同)
  • 我只是因为使用"执行摘要"这几个字而接近投票,但当你最终解决我的问题时,我决定向你投票:-) (2认同)
  • 有些电缆不具有数据传输功能,仅用于充电目的。这些类型的电缆不能与 ADB 一起使用。 (2认同)

dee*_*ter 43

如果您已安装EasyTether应用程序,则可能会干扰ADB.

在此页面中,您可以执行以下命令:

sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext 
Run Code Online (Sandbox Code Playgroud)

这将卸载您的EasyTether扩展.

如果您需要重新启用EasyTether进行网络共享,我相信您可以使用:

sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext 
Run Code Online (Sandbox Code Playgroud)

这适用于我的三星Galaxy S2.在我的情况下,每次重新启动时都必须执行kextunload命令.


K.K*_*K.K 38

适用于OS X的Nexus 4和Nexus 5的解决方案

运行时,"附加设备列表"中没有列出设备:adb devices

固定:

  1. developer.android.com获取SDK(最新版本)
  2. 将开发者模式放在nexus 4上(关于手机>内部版本号>点击7次以进入开发模式)
  3. 新的菜单选项将出现在'Settings':{}开发人员选项中
  4. 确保在{}开发者选项下检查以下内容:
    • USB调试:USB连接时的调试模式(接受RSA指纹弹出)
    • 通过USB验证应用程序:检查通过ADB/ADT安装的应用程序是否存在有害行为

尝试从./adb设备列出您的设备,它应该工作.

答案取自:任何想法为什么adb不能识别mac上的nexus 4


小智 30

如果您使用以下设备:
Samsung S3 GT-I9305(Android 4.1.2)
Mac OS 10.6.8

做以下事项:

# echo "0x04e8" >> ~/.android/adb_usb.ini
# adb kill-server
# adb devices
Run Code Online (Sandbox Code Playgroud)

(如果您未使用Samsung设备,请将供应商ID"0x04e8"更改为供应商的正确值)

如果仍然无法正常工作,您可能需要尝试以下操作:

(1)在Samsung设备上,禁用"USB Debugging"并再次重新启用它
(并再次尝试adb命令)

(2)断开USB电缆,然后重新连接

(3)卸载Samsung Kies

(4)安装Android文件传输

(5)重新启动Mac和Samsung设备

(6)使用硬件设备测试您的Android应用程序

在连接设备但你突然拔掉USB线后,假设现在"adb devices"无法再看到你的设备,即使在"adb kill-server"之后,在这种情况下,你可能想尝试以下方法:

(1)关闭Mac电源
(2)禁用Samsung设备上的"USB debuggine"
(3)关闭Samsung设备
电源(4)关闭Mac
电源(5)打开Samsung设备电源
(6)启用"USB debuggine"在您的Samsung设备上
(7)连接USB电缆
(8)运行"adb devices"
(9)您应该立即看到连接的设备

  • 我打算特别为供应商的链接提供这个答案,但链接尝试安装广告软件.我没有尝试其他链接,但我确信他们做同样的事情. (2认同)

Cas*_*ase 25

信不信由你,交换USB电缆为我解决了这个问题.我一直在使用一个随机的(它没有工作),一旦我切换到一个真正的Android设备附带的,它工作.

良好的电缆工作的另一个迹象是,Android文件传输应用程序立即启动,这与蹩脚的电缆没有发生.

  • 这对我也有用.无法相信我浪费在这上面的时间...... (3认同)

guy*_*omb 21

我有类似的问题.我发现OSX不支持MTP.我把它改成了PTP,我被提升为批准了我的笔记本电脑,然后我的设备终于被列出了(LG G3).

在此输入图像描述


小智 15

另外,请确保您没有使用指定仅用于充电的USB电缆.这只是让我.它实际上被标记为"仅用于充电"


for*_*yez 9

在我通过手机启用了开发人员usb调试之后,这只适用于我:

在Android手机上,转到设置>关于,然后重复点击内部版本号,直到启用开发人员选项.

  • 这并单击“设置”->“开发人员选项”->“ USB调试”似乎可以解决问题。.我正在使用带有5.0版本的AstroTab。谢谢! (2认同)

Nel*_* G. 9

在我的情况下,这是因为USB电缆.

我发现有两种类型的USB电缆:

  • 那些只供电的人
  • 那些供电并可以传输数据的人

而且很难知道USB线的类型.现在我通过数据传输在电缆上做了一个缺口.


Bru*_*sky 8

对于那些无法获得此建议工作的民众的说明

在插入设备时尝试启动Console.app并查看错误.我得到了

# The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.
Run Code Online (Sandbox Code Playgroud)

它在重新启动后仍然存在,因此我最终重置了我的PRAM并使其再次运行.

如何执行PRAM RESET

  1. 完全关闭机器.
  2. 简单地按下电源按钮
  3. 按住Command + Option + P + R.
  4. 等到你第三次听到开机报警
  5. 释放所有键,让机器继续完全启动


Mic*_*ael 8

这是另一件要尝试的事情,如果像我一样,你已经尝试了所有其他答案并且没有运气.

在我的情况(Android 4.3的)我走进通知下的USB设置和MTP模式(媒体设备)变更为PTP(摄像头),一旦它打开,该设备在ADT设备列表中出现了.


Cod*_*aru 8

只需更换电缆和授权 Mac 对我有用!

  • 有几次这种情况发生在我身上,它是电缆 - 也许只是用于充电而不是用于数据传输 (2认同)

Fin*_*ney 6

我遇到了同样的问题,以下解决了它。

  • 确保您的手机已启用 USB 调试。
  • 安装 Android 文件传输
  • 您将在手机上收到两条通知,允许连接的计算机进行访问,另一条通知允许访问您设备上的媒体。启用两者。
  • 如果您在终端中输入“adb devices”,您的手机现在将被识别。

  • 打开 Android 文件传输为我完成了工作,谢谢! (2认同)

小智 5

使用较新的 adb 版本,您必须删除 ~/.android/adb_usb.ini

  • rm .android/adb_usb.ini; adb 杀服务器;亚行设备 (2认同)

Ven*_*tra 5

除了Redmi Note 4之外,我还必须启用USB debugging (Security settings)开发者选项。USB debugging