我正在Mac上进行Android开发,但是我手头这个非常新的手机却没有出现在adb设备列表中。其他许多手机和设备对我来说都很好用,所以我知道我的设置没问题。
我已经在手机上启用了调试(“设置”→“应用程序”→“开发”→“USB调试”),但是当我运行adb devices
命令时,它就是没有显示出来。
我正在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”来帮助其找到你的设备,从而提供一个提示。这可以通过将十六进制的厂商 ID 放入文件 ~/.android/adb_usb.ini
中来完成。
但首先,你需要找到厂商 ID 的值。幸运的是,在 Mac 上这很容易。启动 系统信息 应用程序。它位于 /Applications/Utilities/
文件夹中,或者你可以通过屏幕左上角的 Apple 菜单,选择“关于本机”,然后点击“更多信息...”按钮进入。截图如下所示:
展开“硬件”树,选择“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
针对 Nexus 4 和 Nexus 5 在 OS X 上的解决方案
当我运行 adb devices 命令时,设备列表中没有任何设备被列出。
解决方法:
'Settings'
中会出现一个新的菜单选项:{ } Developer Options尝试使用 ./adb devices 命令列出您的设备,它应该可以工作。
sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这将卸载您的EasyTether扩展程序。
如果您需要重新启用EasyTether进行网络共享,我相信您可以使用:
sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这在我的三星Galaxy S2上起作用。在我的情况下,每次重启后执行kextunload命令是必要的。
# echo "0x04e8" >> ~/.android/adb_usb.ini
# adb kill-server
# adb devices
(如果您未使用三星设备,请将供应商ID“0x04e8”更改为您的供应商的正确值)
如果仍然无法正常工作,您可以尝试以下操作:
(1)在您的三星设备上禁用“ USB调试”,然后重新启用它 (并再次尝试adb命令)
(2)断开USB电缆,然后重新连接它
(3)卸载Samsung Kies
(4)安装Android File Transfer
(5)重新启动您的Mac和三星设备
(6)使用硬件设备测试您的Android应用程序
如果设备已连接但您突然拔出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标识符(非唯一):0123456789ABCDEF 0x2207 0x10 0x222,2
在这种情况下,供应商ID为0x2207。 - psychowood信不信由你,对我来说,更换USB电缆解决了这个问题。我一直在使用随意的电缆(它没有起作用),当我切换到一个带有实际Android设备的电缆时,它立即运行。
另一个好电缆正在工作的迹象是,Android文件传输应用立即启动,而这在劣质电缆中并未发生。
还请确保您不要使用专为充电而指定的USB电缆。这个问题曾困扰过我,而且它实际上标注着“仅供充电使用”。
在我的情况下,是由于USB电缆。
我发现有两种类型的USB电缆:
而且很难知道一个USB电缆的类型。现在我给我的数据传输电缆打了个记号。
仅当我在手机上启用开发者USB调试后,此方法才适用:
在您的安卓手机上,进入“设置” > “关于手机”,然后反复点击“版本号”,直到启用“开发者选项”。
adb devices
也显示了我的三星Galaxy A5 2015。 - jonashackt尝试启动 Console.app 并在您插入设备时查看错误。我曾经遇到过以下错误:
# The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.
这个问题在重启后仍然存在,所以我最终重置了我的PRAM,然后它又正常工作了。
如何执行PRAM重置