在Mac上进行Android开发时,我的这部新手机并没有出现在adb的设备列表中。很多其他的手机和设备对我来说都很好,所以我知道我的设置是好的。
我在手机上启用了调试(设置—>应用程序—>开发—> USB调试),但当我运行adb设备时,它不显示
在Mac上进行Android开发时,我的这部新手机并没有出现在adb的设备列表中。很多其他的手机和设备对我来说都很好,所以我知道我的设置是好的。
我在手机上启用了调试(设置—>应用程序—>开发—> USB调试),但当我运行adb设备时,它不显示
重要更新:正如@equiman指出的,有一些USB电缆只用于充电,不传输数据。有时交换电缆也会有帮助。
更新一些版本的adb, ~/.android/adb_usb.ini必须被删除。
执行摘要:将Vendor ID添加到~/.android/adb_usb.ini并重新启动adb
详情: 大多数情况下,不需要做任何事情就可以让Mac识别手机/设备。说真的,99%的情况下“它就是管用”。
也就是说,重置adb的最快方法是按顺序使用以下命令重新启动它:
adb kill-server
adb devices
但是adb devices命令时常找不到您的设备。也许如果你正在使用一些实验性的或原型的或不寻常的设备,也许它只是未知的,不会出现。
您可以通过告诉adb您的设备的“Vendor ID”来帮助adb找到您的设备,这实际上是为它提供了一个提示。这可以通过将十六进制供应商ID放在文件~/.android/adb_usb.ini中来实现
但是首先您必须找到Vendor ID值。幸运的是,在Mac上这很简单。启动系统信息应用程序。它位于/Applications/Utilities/文件夹中,或者你可以通过屏幕左上角的苹果菜单找到它,选择“关于这台Mac”,然后点击“更多信息…”按钮。截图如下:
Expand the "Hardware" tree, select "USB", then look for your target device. In the above example, my device is named "SomeDevice" (I did that in photoshop to hide the real device manufacturer). Another example would be a Samsung tablet which shows up as "SAMSUNG_Android" (btw, I didn't have to do anything special to make the Samsung tablet work.) Anyway, click your device and the full details will display in the pane below. This is where it lists the Vendor ID. In my example from the screenshot the value is 0x9d17 -- use this value in the next command
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
此外,确保你在供应商的网站上查看他们的“USB”驱动程序。我的AT&T Galaxy Note(运行Android 2.3.6)遇到了这个问题,如果没有从三星网站上获得的驱动程序安装,adb无法识别。
如果您已经安装了EasyTether应用程序,这可能会干扰ADB。
在这个页面你可以执行以下命令:
sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这将卸载您的EasyTether扩展。
如果您需要重新启用EasyTether进行系链,我相信您可以使用:
sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext
这在我的三星Galaxy S2上很有效。在我的例子中,每次重新启动时都必须执行kextunload命令。
我花了很长一段时间。
我尝试过这种方法,但没有成功。我最终关闭了USB调试,然后设备要求安装motocast。
它试图使用内置安装程序,但它一直崩溃超过下载。在我手动下载并安装它之后,我就可以做到这一点了。
我运行的是10.6.8,设备是运行3.2.2的Xoom 2
安装之后,它工作得很好。
信不信由你,换USB线帮我解决了这个问题。我一直在用一个随机的Android设备(它不起作用),但当我换到一个真正的Android设备上时,它就起作用了。
另一个好的电缆起作用的迹象是,Android文件传输应用程序立即上线,而蹩脚的电缆却没有做到这一点。
如果您正在使用以下设备: 三星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)卸载Samsung Kies
(4)安装Android File Transfer
(5)重新启动你的Mac和三星设备
(6)使用硬件设备测试Android应用
在连接设备后,突然拔掉USB线,假设现在“adb设备”再也看不到你的设备了, 即使在“adb kill-server”之后,在这种情况下,你可能想尝试以下方法:
(1)关闭你的Mac (2)在你的三星设备上禁用“USB调试” (3)关闭三星设备 (4)打开你的Mac (5)打开三星设备 (6)在三星设备上启用“USB调试” (7)连接USB线 (8)运行“adb devices” 你现在应该能看到附上的设备了
注意到那些不能得到任何这个建议工作的人
尝试启动控制台。应用程序和观察错误,当你插入你的设备。我正在
# The IOUSBFamily is having trouble enumerating a USB device that has been plugged in. It will keep retrying.
重启后它仍然存在,所以我最终重置了我的PRAM,这让它再次工作。
如何进行婴儿车复位
完全关闭你的机器。 简单地按一下电源键 按住Command + Option + P + R 等待,直到你听到第三次开机铃声 松开所有按键,让机器继续完全启动
万一你像我一样,上面这些方法都不管用,我想出了一个非常愚蠢的解决办法。
我在2011年的Macbook Pro电脑上使用的是HTC One X。我刚刚在设置中禁用了近场通信>无线和网络>更多>近场通信和中提琴!工作正常。
针对OS X的Nexus 4和Nexus 5的解决方案
当我运行:adb devices时,在“附加设备列表”中没有列出任何设备
Fix:
从developer.android.com获取SDK(最新版本) 在nexus 4上设置开发模式(关于手机> Build Number >点击7次进入开发模式) 一个新的菜单选项将出现在“设置”:{}开发人员选项 确保你在{}开发者选项下检查了以下内容: USB调试:USB连接时的调试模式(接受RSA指纹弹出) 通过USB验证应用程序:检查通过ADB/ADT安装的应用程序是否存在有害行为
尝试从./adb设备中列出您的设备,它应该可以工作。
答案摘自:你知道为什么adb在mac上不识别我的nexus 4吗
如果你像我一样尝试了所有其他的答案,但都没有运气,那么还有一件事可以尝试。
以我为例(Android 4.3),我在通知下进入USB设置,从MTP模式(媒体设备)切换到PTP模式(相机),一旦切换,设备就出现在ADT设备列表中。
我已经看到这个问题,并尝试了stackoverflow和其他网站上的每一个解决方案,但没有帮助我。我重启了adb,打开了developer模式,激活了usb调试,卸载了samsung kies,甚至把usb线换到了不同的端口。 但后来我在某处读到,不同的usb线连接笔记本电脑或电脑时使用不同的引脚。 所以我用不同的usb线连接我的三星手机到mac ..我发誓,这是有效的…对我来说……
我也遇到了同样的问题,接下来就解决了。
确保你的手机开启了USB调试。 安装Android文件传输 您将在手机上收到两个通知,允许连接的计算机访问,另一个通知允许访问设备上的媒体。使两种。 现在,如果您在终端中输入“adb devices”,您的手机将被识别。
对我来说,是因为USB线。
我发现有两种类型的USB线:
那些只提供电力的 能够供电和传输数据的
而且很难知道USB线是什么类型。现在我用数据传输在电缆上做了一个缺口。
我试图连接一台旧手机,我用它来测试旧API版本上的应用程序。今天,亚行没有发现这一点。
在这里尝试了几乎所有的东西之后,我发现手机甚至没有显示USB连接正在进行的系统通知。
所以我四处寻找这个问题,并在这里找到了解决方案(出处出处):
Remove phone from PC and remove battery to shut off phone. Plug USB cable into PC. Plug USB cable (other end) into phone. The PC install new hardware appropriate drivers for a few minutes (phone without battery) Unplug USB cable from phone Put battery back in and turn on phone As the phone boots, hold down Volume up and down. Phone boots into safe mode. Plug USB cable into phone. I saw notification about USB MTP-connecting on the phone. PC have found my phone! After the reboot in normal mode problem was fixed
不确定第四步。在macOS上没有任何用处,但是我做了所有的步骤,它工作得很好。
现代Android的另一个棘手之处在于,你可以通过选择设备的“用途”来设置设备行为。
例如,如果它被设置为“用于”充电,设备将不会被ADB检测到。切换到PTP/MTP其他更“活跃”的行为会自动让你的设备被发现。
对我来说,这是有效的,我有一个华为设备,我必须从AppStore安装HiSuite,按照它的说明启用HDB,然后在我的手机上将USB模式改为PTP,我开始看到一些关于授权设备的弹出窗口,之后adb设备检测到该设备。
上面的答案对我都没用。在macOS Mojave上,打开控制台应用程序,你可能会看到这样的错误:
001076.240057 adb@(null): IOUSBUserClientLegacy::start: missing entitlement com.apple.appledfr.client
即使重置mac PFRAM也无济于事。要解决此问题:
通过USB线连接Android设备(双USB- c线适合我)。 进入设置-> ..—>开发人员选项,单击“撤销USB调试授权” Android手机将重启。 进入设置-> ..->开发人员选项,并确保USB调试是启用的。 现在在macOS终端输入: 亚洲开发银行设备 你可以看到你的设备列出来了。
它适用于我的谷歌Pixel 2手机。
当我将Android 10设备插入Mac OS时,手机上出现了一个弹出框,上面写着:
Mac操作系统无法访问此设备上的数据,您必须下载文件传输或智能开关。
下载文件传输https://www.android.com/filetransfer/为android 我猜三星可以下载智能开关https://www.samsung.com/us/smart-switch/
虽然不知道为什么这里有两个选择!
我下载了文件传输,即使是三星Note,它也能很好地工作。
注意:我忘了说,首先你必须启用开发人员模式,然后USB调试。
我遇到了同样的问题,花了大半天的时间寻找解决办法。但一切都是徒劳的。在第一个回答中,提到了USB线的问题,这没有引起人们的注意。所以如果有人遇到同样的问题,我建议,首先
尝试一些其他的USB电缆,因为一些电缆只用于充电而不是传输数据
如果它不能给你带来好运,那么你可以尝试其他答案。