ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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

对于任何在三星手机上苦苦挣扎的人,我发现我必须安装 Kies 才能识别该设备
你应该在 USB 调试而不是多媒体 (MTP) 时使用 PTP --
设置->开发者选项->USB调试。
Q 代表“非常新的手机”,我想补充一点,实际上在我的情况下,手机真的太旧了。完全可以正常工作,而且不是那么古老,但显然对我的 Mac 来说太旧了。

d
dustmachine

重要更新:正如@equiman所指出的,有些 USB 数据线仅用于充电,不传输数据。有时只是交换电缆会有所帮助。

对于某些版本的 adb,更新,必须删除 ~/.android/adb_usb.ini

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

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

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

  adb kill-server
  adb devices

但时不时地使用 adb devices 命令无法找到您的设备。也许如果您正在使用一些实验性或原型或不寻常的设备,也许它只是未知并且不会出现。

您可以通过告诉 adb 您的设备的“供应商 ID”来帮助 adb 找到您的设备,本质上是向它提供提示。这可以通过将十六进制供应商 ID 放入文件 ~/.android/adb_usb.ini 中来完成

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

https://i.stack.imgur.com/dKFco.png

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

echo 0x9d17 >> ~/.android/adb_usb.ini

如果在此之前您还没有该 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

对我来说,这是电缆 - 非常感谢
是电缆,我不敢相信,所有 indipad 桌子附带的电缆都不起作用!
是的,对我来说它也是电缆!我正在搜索有关驱动程序和配置文件的内容,但它只是电缆!感谢您的附加更新
电缆问题也在这里。谢谢!
不要小看那根电缆!尝试了一切,它是电缆!
C
Community

针对 OS X 的 Nexus 4 和 Nexus 5 的解决方案

当我运行时,“连接的设备列表”中没有列出任何设备:adb devices

使固定:

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

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

答案来自:Any idea why adb does not recognize my nexus 4 on mac


非常感谢!对我来说就是这样;)
d
deepwinter

如果您安装了应用程序 EasyTether,这可能会干扰 ADB。

您可以从此 page 执行命令:

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

这将卸载您的 EasyTether 扩展。

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

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

这适用于我的三星 Galaxy S2。就我而言,每次重新启动时都必须执行 kextunload 命令。


该死的,谢谢!忘了我在 3 周前安装了这个垃圾!
非常感谢...这正是我的问题所在
是的,这是一个令人头疼的问题。在将 easy Tether 安装到 mac 后,连接的 android 设备未显示在 eclipse IDE 中。当我执行 sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext 这个命令时。但没有什么能帮助我弄清楚连接设备问题...我还从系统偏好设置中删除了 EasyTether 网络连接。
从来没有安装过这个 EasyTether 的东西,但是在我禁用它之后,它就可以在 adb 设备上使用。现在我必须让快速启动设备工作......
我使用 EasyTether -ages- 之前忘记了我已经安装了它。这对我有用。
B
Bhargav Rao

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

执行以下操作:

# echo "0x04e8" >> ~/.android/adb_usb.ini
# adb kill-server
# adb devices

(如果您使用的不是三星设备,请将供应商 ID“0x04e8”更改为您供应商的正确值)

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

(1) 在您的三星设备上,禁用“USB 调试”并重新启用它(并再次尝试 adb 命令)

(2) 断开 USB 数据线,然后重新连接

(3) 卸载三星凯斯

(4) 安装安卓文件传输

(5) 重启你的 Mac 和三星设备

(6) 使用硬件设备测试你的安卓应用

连接设备后突然拔掉 USB 线,假设现在“adb devices”无法再看到您的设备,即使在“adb kill-server”之后,在这种情况下,您可能需要尝试以下操作:

(1) 关闭 Mac (2) 禁用三星设备上的“USB 调试” (3) 关闭三星设备 (4) 开启 Mac (5) 开启三星设备 (6) 启用“USB 调试”在您的三星设备上 (7) 连接 USB 数据线 (8) 运行“adb devices”(9) 您现在应该可以看到连接的设备


我打算专门为指向供应商的链接投票这个答案,但该链接试图安装广告软件。我没有尝试其他链接,但我确信它们会做同样的事情。
为我工作的 Mediacom S2 平板电脑。 Console.app 在连接设备时显示供应商 ID:13/02/14 11:17:27,000 kernel[0]: USBMSC Identifier (non-unique): 0123456789ABCDEF 0x2207 0x10 0x222, 2 VendorID 在本例中为 0x2207
投反对票,因为指向 Android 文件传输的链接是广告软件。请改用此链接:android.com/filetransfer
我正在寻找的最新的 10 步程序。谢谢!
没有什么对我有用。在恢复模式下仍然找不到我的 gs7
C
Case

信不信由你,更换 USB 电缆为我解决了这个问题。我一直在使用一个随机的(它不起作用),一旦我切换到一个与实际 Android 设备一起提供的设备,它就起作用了。

良好电缆正常工作的另一个迹象是,Android 文件传输应用程序立即启动,而糟糕的电缆并没有发生这种情况。


如果计算机偶尔停止检测您的设备,将 USB 电缆插入不同的 USB 端口也可能会解决“adb devices”问题。
这也对我有用。不敢相信我在这件事上浪费了多少时间……
也发生在我身上,我不知道它是如何工作的。 USB 电缆是 USB 电缆 - 充电工作正常,为什么 ADB 不能工作?那是一些神奇的镀金电缆魔法:(
对于曾经用不工作的电缆连接过的每个人:您是否在手机上看到“允许文件访问”之类的对话框,您的手机是否进入调试模式?还是只是说“通过USB充电”?
g
guyromb

我有一个类似的问题。我发现 OSX 不支持 MTP。我将其更改为 PTP,我被提升为批准我的笔记本电脑,然后我的设备最终被列出(LG G3)。

https://i.stack.imgur.com/cO4Ze.png


LG G2,不得不选择PTP。谢谢!
阿尔卡特 OneTouch Idol 3 默认为充电模式,但通过持续的 USB 调试连接通知误导了我。我不得不滚动经过误导性的启用 USB 调试开关并打开 Select USB configuration 菜单。
这对我有用 - 请注意,要进入此菜单,您可能需要启用 USB 调试,然后从通知栏顶部点击 USB 连接对话框并从 MTP 切换到 PTP。在您应该看到一个对话框以接受与您的计算机的连接之后。
一样!必须在 Nexus 5X 上切换到 Transfer photos (PTP)
对我来说,我需要将“使用 USB 用于”从 ( ) Transferring files 更改为 (*) USB tethering。我从手机主屏幕上的“通知”下拉菜单中访问了此选项。
b
brew

还要确保您没有使用专门用于充电的 USB 电缆。这只是让我。它实际上被标记为“仅用于充电”


我完全没想到会有这个解决方案,但是是的,我换了我的 USB 电缆,我的设备就在那儿了.. :/ :/
对于普通的 USB,两个触点用于数据,两个用于电源。那些“仅用于充电”的电缆可能通过省略数据连接来降低制造成本。
谢谢,我遇到了同样的问题。我正在使用便携式充电器的 USB 到 microUSB 电缆,以为它是标准电缆,但我想它实际上只是用于充电。把它换成普通的 USB 到 microUSB 电缆,它就可以工作了。
b
bartonstanley

就我而言,这是因为 USB 电缆。

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

那些只供电的

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

并且很难知道 USB 电缆的类型。现在,我在数据传输的电缆上做了一个缺口。


90% 的时间,对我来说,这就是问题所在。感谢您的反馈。
S
Shai UI

这仅在我在手机上启用开发人员 USB 调试后才对我有用:

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


这和点击 Settings->Developer Options->USB Debugging 似乎已经成功了。我使用的是带有 5.0 的 AstroTab。谢谢!
这对我来说是 THE 的事情。现在,adb devices 还展示了我的三星 Galaxy A5 2015。
B
Bruno Bronosky

无法获得任何此建议的人的注意事项

尝试启动 Console.app 并在插入设备时观察错误。我得到

# The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.

重新启动后它仍然存在,所以我最终重置了我的 PRAM 并让它再次工作。

如何执行 PRAM 重置

完全关闭机器。短按电源键 按住 Command + Option + P + R 等到第三次听到开机提示音 松开所有键,让机器继续完全开机


我有同样的问题“IOUSBFamily 在枚举 USB 设备时遇到问题”。我已经尝试了所有可能的解决方案,甚至 PRAM RESET。对我不起作用:(还有其他建议吗?以前一切都很好,现在突然间我的 3 台设备都没有被识别。正在为三星的设备充电,对于 nexus 4 甚至没有。
谢谢你 !我尝试了前 6 个答案,但没有任何效果。最后,您的解决方案效果很好。您的解决方案应添加到最受好评的答案中。
@MaximeBernard - 您是否也收到了 Console.app 错误,或者您是否只是重置了 PRAM?
M
Michael

这是另一件事要尝试,如果您像我一样尝试了所有其他答案并且没有运气。

在我的情况下(Android 4.3),我进入通知下的 USB 设置并从 MTP 模式(媒体设备)更改为 PTP(相机),一旦切换,设备就会出现在 ADT 设备列表中。


救命稻草!谢谢,马上为我的 LG L90 (D415) 工作!
S
Saru

只需更换电缆并授权 Mac 即可为我工作!


有几次这种情况发生在我身上,它是电缆 - 可能只是用于充电而不是用于数据传输
我也是;检查电缆。
i
itzmebibin

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


rm .android/adb_usb.ini; adb 杀死服务器;亚行设备
F
Fintan Kearney

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

确保您的手机启用了 USB 调试。

安装 Android 文件传输

您将在手机上收到两条通知,允许连接的计算机访问,另一个通知允许访问您设备上的媒体。启用两者。

如果您在终端中键入“adb devices”,您的手机现在将被识别。


打开 Android 文件传输对我有用,谢谢!
V
Venkat Kotra

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


甚至我必须为 Redmi Note 7 启用 USB 调试才能使其工作。
A
Adam Johns

如果您正在尝试检测三星 Galaxy S3,请在手机上转到设置 -> 开发人员选项 -> 确保选中 USB 调试


我是 android 开发人员,每天与 Galaxy Nexus 一起工作。不知何故,USB调试自己被取消了,半小时前没有更新没有变化。我再次启用它并且它的工作。这给了我检查它的线索,谢谢。
i
intellectual_stretch

以防万一它在将来对某人有所帮助,当我启用/禁用“显示布局边界”时,我不小心在我的设置中关闭了“USB调试”。因此,首先在“开发人员选项”中检查此设置。


我需要将其关闭然后再次打开以使用我的 Mac 进行修复。
C
Community

我切换到一个不同的 USB 端口,这让它显示在 adb 设备列表中。

这是这里提出的所有解决方案中唯一对我有用的。它是由 @user908643 在此 comment 中提出的。


R
Rock_Artist

现代 Android 的另一个棘手问题是您通过选择设备的“使用”来设置设备行为。

例如,如果将其设置为“用于”充电,则 ADB 将不会检测到该设备。切换到 PTP/MTP 其他更“活跃”的行为将自动神奇地使您的设备可检测到。


如果我在设置中转到 USB 首选项以设置为 PTP,它们都是灰色的:|
g
gmile

以上答案都不适合我。在 macOS Mojave 上,打开控制台应用程序,您可能会看到如下错误:

001076.240057 adb@(null): IOUSBUserClientLegacy::start: missing entitlement com.apple.appledfr.client

即使重置 mac PFRAM 也无济于事。要解决此问题:

通过 USB 电缆连接 Android 设备(双 USB-C 电缆适用于我)。转到设置 -> .. -> 开发人员选项,然后单击撤销 USB 调试授权 Android 手机将重新启动。转到设置 -> .. -> 开发人员选项并确保启用 USB 调试。现在在 macOS 终端输入: adb devices 您可以看到您的设备已列出。

它适用于我的 Google Pixel 2 手机。


对我来说几乎是一样的,但是您描述的这种方式有时会有所帮助,有时会有助于更换 USB 插座,但最终它会卡住并且在 mac 重新启动之前不会一直看到我的设备。你有没有弄清楚到底发生了什么?
这个设置救了我,谢谢。显然,最近的一次 Android 更新让我的开发人员设置打开,但关闭了我的 USB 调试开关。重新打开它解决了它。
c
code4cause

还要确保您检查供应商网站以获取他们的“USB”驱动程序。我的 AT&T Galaxy Note(运行 Android 2.3.6)有这个问题,如果没有从三星网站获得的驱动程序安装,adb 就无法识别它。


U
Ujjwal Singh

尝试重新启动(如果之前曾检测到并停止出现) - 所有解决方案之母!


i
itzmebibin

在我的 Mac OS X Lion 设置中,上述提示均不适用于我。我有运行 2.3.6 的摩托罗拉手机。事实证明,我需要为摩托罗拉手机安装驱动程序。我找到了他们here


A
Akshay Agarwal

这该死的奇怪,但只需插入位于我的 2014 年中期 MBP 上的 Thunderbolt 端口旁边的 USB 端口,Retina 就可以了!

另一个 USB 端口根本无法识别该设备。


C
Community

在 LG G3 上,我可以通过自制软件 (Installing ADB on MAC OS X) 安装 ADB,然后禁用/启用 USB 调试来使其正常工作。


i
itzmebibin

尝试了以上所有方法,最后缺少的是在我的 4.4 Galaxy Note 10.1 中隐藏的开发人员选项中启用 USB 调试。

请参阅 this 链接中的第 5.2 项。


你能总结一下链接,以防万一它坏了?
j
jrea

我有一个魔鬼的时间。

我尝试了这种方法,但没有奏效。我最终关闭了 USB 调试,然后设备请求安装 motocast

它尝试使用内置安装程序,但下载后一直崩溃。在我手动下载并安装后,我能够做到。

我正在运行 10.6.8,设备是运行 3.2.2 的 Xoom 2

安装后,它工作正常。


p
poff

如果像我一样,上述方法都不适合你,我想出了一个非常愚蠢的解决方案。

我在 2011 Macbook Pro 上使用 HTC One X。我刚刚在“设置”>“无线和网络”>“更多”>“NFC 和中提琴”中禁用了 NFC!正常工作。


M
Mukul Aggarwal

我已经看到了这个问题,并在 stackoverflow 和其他网站上尝试了所有解决方案,但没有任何帮助。我已经重新启动了 adb,打开了开发者模式并激活了 USB 调试,卸载了 samsung kies,甚至将 USB 电缆交换到了不同的端口。但后来我在某处读到不同的 USB 电缆使用不同的引脚连接到笔记本电脑或计算机。所以我使用不同的 USB 电缆将我的三星手机连接到 mac .. 并且 vowwww 它可以工作......对我来说......


就我而言,它是电缆。我用优质电缆对其进行了更改,并找到了所有设备。
u
user501138

在我的情况下,我的设备上没有启用 USB 调试,但将设备连接到我的 macbook 并没有导致屏幕上弹出熟悉的“允许 USB 调试”对话框。


对于遇到此问题的任何人(就像我在过去几个小时内一直存在的问题),您所需要做的就是按照以下网站的说明进行操作 eltima.com/wiki/user-guides/syncmate/usb-debugging-android.html 说明最高到 v4.0 of Android。我搜索了互联网,搜索“Android 无法连接到 Mac”之类的所有解决方案都要求启用 USB 调试模式,但没有说明如何访问此选项。在 3 个应用程序和 5 次安装之后,我发现这个网站是因为一个名为 SyncMate 的应用程序。我现在要放松一下,享受圣诞节。