You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac仅单个USB端口可正常执行adb push命令的原因排查

为什么Mac只有单个USB端口能通过adb向Android手机传输文件?

这个问题我之前帮好几个朋友排查过,大概率是这几个原因导致的,给你拆解一下:

1. 端口硬件规格/供电差异

很多Mac(尤其是老款MacBook Pro)的左右USB端口硬件规格其实不一样:比如一侧是USB 3.x(带宽更高、供电更稳),另一侧是USB 2.0,甚至有的是Thunderbolt复用端口。当你用adb push传文件时,对端口的带宽和供电稳定性要求不低,要是碰到USB 2.0端口,带宽不够或者供电波动,就容易出现传输中断,也就是你看到的adb: error: failed to copy... couldn't read from device这类错误。

解决步骤:

  • 先查清楚端口规格:点击左上角苹果图标→「关于本机」→「系统报告」→「USB」,就能看到每个端口的协议版本(比如USB 3.1 Gen 1)
  • 优先用USB 3.x端口传文件,USB 2.0端口留给键盘、鼠标这类低带宽设备就行

2. 端口的系统识别/adb连接异常

有时候某个USB端口之前插过其他设备,可能导致系统的USB驱动缓存出问题——看起来手机已经连上了,但adb和设备的实际通信其实是断的,传输时自然会出错。

解决步骤:

  • 先拔掉所有USB设备,重启Mac;然后用左侧端口重新连接手机
  • 执行这几个命令重置adb:
    adb kill-server
    adb start-server
    adb devices
    
  • 同时在手机端,进入「开发者选项」,先关闭再重新打开「USB调试」,并且重新授权Mac的调试权限

3. USB线缆兼容性/损坏问题

别小看线缆!有些Type-C线缆看起来是全功能的,但其实只支持充电,不支持数据传输;还有的线缆用久了内部线芯断了,在某个端口刚好接触不良,传输时就会丢包。

解决步骤:

  • 换一根官方或者MFi认证的USB数据传输线,用左侧端口重新连接手机再试
  • 可以先测试线缆:用它连接其他设备传个大文件,确认线缆本身没问题

4. adb版本/系统权限问题

如果你的adb版本太老,可能对新的USB端口协议支持不好;另外Mac的系统权限没给adb开放USB访问权限,也会导致特定端口无法正常通信。

解决步骤:

  • 更新adb到最新版:如果你用Homebrew安装的,执行brew upgrade android-platform-tools;或者打开Android Studio的SDK Manager,更新「Platform Tools」
  • 检查系统权限:打开Mac的「系统设置」→「隐私与安全性」→「USB」,确认「adb」或者「Android Studio」已经被授予权限,没给的话点击「允许」

内容的提问来源于stack exchange,提问作者booksock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:24:17