MacBook ADB无法打开接口。

59

我在通过USB进行Android ADB调试时遇到了问题。

我正在使用2013年的Macbook Air,并尝试连接Nexus 6开发手机。

在MAC Android Studio中,安装了最新的Android SDK。

当我执行以下操作时

adb kill-server
adb devices

我得到:

adb I   661  9881 usb_osx.cpp:259] Found vid=18d1 pid=**** serial=*****
adb I   661  9881 usb_osx.cpp:259] 
adb E   661  9881 usb_osx.cpp:331] Could not open interface: e00002c5
adb E   661  9881 usb_osx.cpp:265] Could not find device interface

因此,它发现设备、厂商ID、产品ID和序列号与我在系统信息中找到的Nexus 6相匹配。

按照在线建议,我尝试了以下解决方法-但没有成功:

  • 关闭并重新启用手机上的调试模式,还在充电、MTP、PTP、RNDIS、音频源、MIDI之间切换USB配置,始终确保授权Mac的RSA指纹

  • 关闭Android Studio/DDMS,通过'kill-server'命令杀死adb以及通过Apple活动监视器杀死进程

  • 以root身份运行adb

  • 多次重启Mac

  • 重启Nexus 6

  • 完全重新安装Android SDK

  • 使用另一个启用调试的Android设备尝试(Samsung Galaxy Tab,在这里adb找到了正确的设备信息,但无法使用相同错误访问接口)

  • 尝试使用3种不同的USB电缆,所有电缆都是随Android设备一起发货的

通过谷歌,我了解到错误代码e00002c5意味着该设备已被另一个驱动程序使用。 最近我安装了Sophos Home Antivir。想到这可能会防止ADB打开设备接口,我使用提供的卸载程序完全卸载了Sophos并重新启动了Mac。

欢迎任何提示:

  • 哪些步骤可以解决问题?

  • 由于e00002c5似乎是另一个驱动程序正在使用该设备的明确指示器,因此如何找出是哪个进程以及如何停止它使用该设备


我在使用2015年的Macbook Pro和Nexus 6P时遇到了同样的问题。尝试了所有这些步骤,但仍然出现e00002c5错误。如果我在安全模式下启动,adb可以正常工作,这表明可能是另一个驱动程序的问题。仍在寻找一种方法来查看还有哪些端口处于打开状态。 - Chris Miller
1
你曾经安装过“EasyTether”吗?如果是,那可能是罪魁祸首。 然后,打开Finder。
  • 在左侧窗格中单击Mac的硬盘驱动器。
  • 您应该会看到一个简短的文件夹列表。打开名为“System”的文件夹。
  • 打开“Library”。
  • 打开“Extensions”。
  • 查找名为“EasyTetherUSBEthernet.kext”的文件,并将其拖到垃圾桶中。您的计算机可能会要求您授权,因此请确认操作。
  • 重新启动计算机以清除EasyTether驱动程序在内存中的所有痕迹。
- Isanka Wijerathne
@IsankaWijerathne - 我把EasyTetherUSBEthernet.kext移动到另一个文件夹并重新启动了电脑,然后我安装的所有软件都开始识别我的Android设备。这解决了我们中使用EasyTether的人的问题...你应该把它作为答案发布! - jamesmortensen
6个回答

164

我也遇到了这个错误,后来发现问题出在我在Chrome中打开了一个Stetho选项卡(即一个位于URL chrome://inspect/#devices的选项卡),我猜测这会导致设备被占用。关闭该选项卡,然后运行adb kill-server,再次运行adb devices就可以正常工作了。


7
相似的解决方法是关闭我的Mac上的chrome://inspect/#devices,然后运行重启命令,这样可以使它工作。我还关闭了文件传输管理程序,但不确定这是否有帮助。 - Sandra
3
很明显,这里出现了一个模式,我在打开chrome://inspect选项卡时遇到了同样的问题,我差点失去了所有的希望。感谢你的发现! - Peter_Fretter
9
这应该被接受。这就是问题所在。针对我的情况,我不需要关闭服务器,只需关闭Chrome中的选项卡即可。 - Alberto Garrido
2
谢谢你!救了我的一天。我曾经遇到过与间隙调试相同的问题,从未想过Chrome检查也会导致这个问题。 - Jack Vial
1
我遇到了随机重启和adb断开连接的问题,这让我疯狂。关闭chrome://inspect就解决了。谢谢Alan。 - Jeremy Pullicino
显示剩余4条评论

8

连接 Galaxy S7 到 Mac 电脑通过 USB 时遇到相同的问题。我个人经历是,我同时打开了三星 Gear 开发的 Tizen IDE,这也导致 adb 无法正常工作。关闭 Tizen IDE 即可解决问题。

如果您第一次连接手机时已经授权给了电脑,您需要在手机上删除这个授权并重新连接 / 授权电脑。否则,设备会出现在设备列表中,但未被授权。(即无法进行调试...)


2
如果您正在使用VirtualBox,并且已经打开了虚拟机,则可能会在宿主机上使用adb,同时又将其插入到虚拟机中。问题是不能同时在两台设备上都插入您的设备。
解决方案:如果您的虚拟机检测到您的设备,请在右下角面板上取消选中您的设备。
请参考以下链接以获取更多信息:enter image description here

1
如果您一直在虚拟机中访问设备,并且现在想要从主机操作系统访问它,首先必须从虚拟机中断开设备。要做到这一点,请进入“设置> USB>取消选中列表中的设备”。然后先拔下手机再重新插上。或者使用“> adb kill-server >adb start-server”命令重启服务器。这对我有用。

0
我遇到了一个问题,提示信息为“无法打开接口:e00002c5”。e00002c5 表示另一个应用程序正在使用设备,而这个问题是由 Tizen Studio 引起的。关闭 Tizen IDE 后,在 adb 设备列表中可以找到已连接的设备。

我想补充一下,显然Docker也不太与ADB兼容。 - Martyn

0
我正在使用LG K4手机调试我的Mobillyo应用程序。我关闭了Android Studio,然后在手机设置中启用了USB调试,保持设置打开状态,重新打开Android Studio并运行,弹出一个带有手机信息和未经授权的对话框,要求在手机上批准,点击“确定”即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接