在 Mac 上进行 Android 开发,而我拥有的这款非常新的手机并没有出现在 adb 的设备列表中。许多其他手机和设备对我来说都很好,所以我知道我的设置很好。
我在手机上启用了调试(设置 --> 应用程序 --> 开发 --> USB 调试),但是当我运行 adb devices
时它没有显示
重要更新:正如@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
针对 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
如果您安装了应用程序 EasyTether,这可能会干扰 ADB。
您可以从此 page 执行命令:
sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这将卸载您的 EasyTether 扩展。
如果您需要重新启用 EasyTether 进行网络共享,我相信您可以使用:
sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这适用于我的三星 Galaxy S2。就我而言,每次重新启动时都必须执行 kextunload 命令。
如果您使用以下设备: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) 您现在应该可以看到连接的设备
13/02/14 11:17:27,000 kernel[0]: USBMSC Identifier (non-unique): 0123456789ABCDEF 0x2207 0x10 0x222, 2
VendorID 在本例中为 0x2207
信不信由你,更换 USB 电缆为我解决了这个问题。我一直在使用一个随机的(它不起作用),一旦我切换到一个与实际 Android 设备一起提供的设备,它就起作用了。
良好电缆正常工作的另一个迹象是,Android 文件传输应用程序立即启动,而糟糕的电缆并没有发生这种情况。
我有一个类似的问题。我发现 OSX 不支持 MTP。我将其更改为 PTP,我被提升为批准我的笔记本电脑,然后我的设备最终被列出(LG G3)。
https://i.stack.imgur.com/cO4Ze.png
Transfer photos (PTP)
。
( ) Transferring files
更改为 (*) USB tethering
。我从手机主屏幕上的“通知”下拉菜单中访问了此选项。
还要确保您没有使用专门用于充电的 USB 电缆。这只是让我。它实际上被标记为“仅用于充电”
就我而言,这是因为 USB 电缆。
我发现有两种类型的 USB 电缆:
那些只供电的
那些供电并可以传输数据的
并且很难知道 USB 电缆的类型。现在,我在数据传输的电缆上做了一个缺口。
这仅在我在手机上启用开发人员 USB 调试后才对我有用:
在您的 Android 手机上,转到设置 > 关于,然后反复点击内部版本号,直到启用开发人员选项。
Settings->Developer Options->USB Debugging
似乎已经成功了。我使用的是带有 5.0 的 AstroTab。谢谢!
adb devices
还展示了我的三星 Galaxy A5 2015。
无法获得任何此建议的人的注意事项
尝试启动 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 等到第三次听到开机提示音 松开所有键,让机器继续完全开机
这是另一件事要尝试,如果您像我一样尝试了所有其他答案并且没有运气。
在我的情况下(Android 4.3),我进入通知下的 USB 设置并从 MTP 模式(媒体设备)更改为 PTP(相机),一旦切换,设备就会出现在 ADT 设备列表中。
只需更换电缆并授权 Mac 即可为我工作!
使用较新的 adb 版本,您必须删除 ~/.android/adb_usb.ini
我遇到了同样的问题,以下解决了它。
确保您的手机启用了 USB 调试。
安装 Android 文件传输
您将在手机上收到两条通知,允许连接的计算机访问,另一个通知允许访问您设备上的媒体。启用两者。
如果您在终端中键入“adb devices”,您的手机现在将被识别。
除了 Redmi Note 4 中的 USB debugging
之外,我还必须启用 USB debugging (Security settings)
开发者选项。
如果您正在尝试检测三星 Galaxy S3,请在手机上转到设置 -> 开发人员选项 -> 确保选中 USB 调试
以防万一它在将来对某人有所帮助,当我启用/禁用“显示布局边界”时,我不小心在我的设置中关闭了“USB调试”。因此,首先在“开发人员选项”中检查此设置。
现代 Android 的另一个棘手问题是您通过选择设备的“使用”来设置设备行为。
例如,如果将其设置为“用于”充电,则 ADB 将不会检测到该设备。切换到 PTP/MTP 其他更“活跃”的行为将自动神奇地使您的设备可检测到。
以上答案都不适合我。在 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”驱动程序。我的 AT&T Galaxy Note(运行 Android 2.3.6)有这个问题,如果没有从三星网站获得的驱动程序安装,adb 就无法识别它。
尝试重新启动(如果之前曾检测到并停止出现) - 所有解决方案之母!
这该死的奇怪,但只需插入位于我的 2014 年中期 MBP 上的 Thunderbolt 端口旁边的 USB 端口,Retina 就可以了!
另一个 USB 端口根本无法识别该设备。
尝试了以上所有方法,最后缺少的是在我的 4.4 Galaxy Note 10.1 中隐藏的开发人员选项中启用 USB 调试。
请参阅 this 链接中的第 5.2 项。
我有一个魔鬼的时间。
我尝试了这种方法,但没有奏效。我最终关闭了 USB 调试,然后设备请求安装 motocast。
它尝试使用内置安装程序,但下载后一直崩溃。在我手动下载并安装后,我能够做到。
我正在运行 10.6.8,设备是运行 3.2.2 的 Xoom 2
安装后,它工作正常。
如果像我一样,上述方法都不适合你,我想出了一个非常愚蠢的解决方案。
我在 2011 Macbook Pro 上使用 HTC One X。我刚刚在“设置”>“无线和网络”>“更多”>“NFC 和中提琴”中禁用了 NFC!正常工作。
我已经看到了这个问题,并在 stackoverflow 和其他网站上尝试了所有解决方案,但没有任何帮助。我已经重新启动了 adb,打开了开发者模式并激活了 USB 调试,卸载了 samsung kies,甚至将 USB 电缆交换到了不同的端口。但后来我在某处读到不同的 USB 电缆使用不同的引脚连接到笔记本电脑或计算机。所以我使用不同的 USB 电缆将我的三星手机连接到 mac .. 并且 vowwww 它可以工作......对我来说......
在我的情况下,我的设备上没有启用 USB 调试,但将设备连接到我的 macbook 并没有导致屏幕上弹出熟悉的“允许 USB 调试”对话框。
不定期副业成功案例分享