adb devices 显示为空?USB Composite Device 异常问题

在 Android 开发或设备调试过程中,adb devices命令是我们常用的工具之一,它能帮助我们查看当前已连接且可被 adb 识别的设备列表。但有时,我们在执行该命令后,终端却显示为空,这无疑会影响后续的调试工作。经过排查,不少人会发现,在设备管理器的 "通用串行总线控制器" 中,"USB Composite Device"(USB 复合设备)处于异常状态,而++卸载++该异常设备后重新开启 USB 调试,adb devices就能正常显示设备,下面就为大家详细梳理这一问题的现象、原因及解决流程。

一、问题现象:adb 识别失效与设备异常并存

当我们按照正常流程,用 USB 数据线将 Android 设备与电脑连接,并在设备上开启 USB 调试模式后,打开命令提示符(Windows 系统)或终端(macOS、Linux 系统),输入adb devices并按下回车键,本应看到类似 "设备序列号 device" 的设备信息列表。但此时,终端界面却仅显示 "List of devices attached" 这一行提示,下方没有任何设备信息,即设备未被 adb 识别。

此时,我们打开电脑的 "设备管理器"(Windows 系统可通过快捷键 Win+X,再选择 "设备管理器" 打开),在 "通用串行总线控制器" 目录下,会发现 "USB Composite Device" 呈现异常状态。这种异常通常以黄色感叹号或问号图标标识,这表明该 USB 复合设备的驱动程序可能存在损坏、冲突,或者设备与电脑之间的连接出现了问题,导致系统无法正常识别和使用该设备,进而影响了 adb 对 Android 设备的识别。

二、可能原因:驱动与连接的双重隐患

(一)驱动程序问题

USB Composite Device 作为一种能同时实现多种功能的 USB 设备,需要对应的驱动程序才能在电脑上正常工作。当驱动程序损坏时,比如电脑意外关机、驱动文件被恶意软件篡改等,都会导致驱动无法正常加载,设备也就处于异常状态,adb 自然无法识别到 Android 设备。

(二)USB 连接问题

一方面,USB 数据线可能存在故障,比如内部导线断裂、接头接触不良等,这会导致设备与电脑之间的通信中断,USB Composite Device 无法正常被系统检测;另一方面,电脑的 USB 接口可能出现问题,例如接口松动、硬件故障等,即使使用完好的数据线,也无法建立稳定的连接,从而引发设备异常和 adb 识别失效的问题。

三、解决流程:分步操作恢复正常

(一)卸载异常的 USB Composite Device

打开 "设备管理器",在左侧列表中找到 "通用串行总线控制器" 并点击展开。

在展开的设备列表中,找到带有黄色感叹号或问号的 "USB Composite Device",右键单击该设备。

在弹出的右键菜单中,选择 "卸载设备" 选项。如果弹出确认对话框,勾选 "删除此设备的驱动程序软件"(若有该选项),然后点击 "确定",等待卸载过程完成。

(二)重新开启 Android 设备的 USB 调试

断开 Android 设备与电脑的 USB 连接。

在设备上,进入 "设置" 界面,找到 "关于手机"(或 "关于设备")选项并点击进入。

在 "关于手机" 界面中,连续点击 "版本号"(或 "内核版本")7 次左右,直到屏幕提示 "您现在处于开发者模式!"(不同品牌设备的提示可能略有差异)。

返回 "设置" 主界面,此时会出现 "开发者选项"(部分设备可能需要在 "系统和更新" 等子菜单中找到),点击进入 "开发者选项"。

在 "开发者选项" 界面中,找到 "USB 调试" 选项,确保其处于关闭状态,然后点击关闭按钮旁边的开关,将其重新开启。在弹出的 "允许 USB 调试吗?" 对话框中,点击 "确定"(若设备连接电脑后弹出该对话框,也需进行此操作)。

(三)重新连接设备并验证 adb 识别状态

使用完好的 USB 数据线,将 Android 设备重新与电脑的 USB 接口连接(建议更换一个 USB 接口,排除接口故障问题)。

电脑会自动重新检测并安装 USB Composite Device 的驱动程序(若之前勾选了删除驱动软件,系统会重新从官方渠道获取并安装驱动),等待驱动安装完成。

再次打开命令提示符或终端,输入adb devices命令并按下回车键。此时,终端应能显示出已连接设备的序列号及 "device" 状态,表明 adb 已成功识别设备,问题得以解决。

四、注意事项:避免问题再次发生

在卸载 USB Composite Device 时,若没有 "删除此设备的驱动程序软件" 选项,无需强行寻找,直接卸载设备即可,系统后续通常会自动修复或重新安装驱动。

重新开启 USB 调试时,务必确保先断开设备与电脑的连接,避免在连接状态下操作可能出现的识别冲突。

日常使用中,尽量使用设备原装的 USB 数据线,避免使用质量较差的第三方数据线,减少因数据线故障引发问题的概率。同时,定期检查电脑 USB 接口的稳定性,发现接口松动、接触不良等问题时及时处理。

若按照上述步骤操作后,adb devices仍显示为空,可尝试重启电脑和 Android 设备,之后再次重复操作流程,部分临时的系统故障可能通过重启得以解决。

相关推荐
TeleostNaCl1 天前
如何安装 Google 通用的驱动以便使用 ADB 和 Fastboot 调试(Bootloader)设备
android·经验分享·adb·android studio·android-studio·android runtime
练小杰2 天前
【Mysql-installer-community-8.0.26.0】Mysql 社区版(8.0.26.0) 在Window 系统的默认安装配置
数据库·sql·mysql·adb·配置文件·mysql安装·关系型数据库
袁美丽..2 天前
Android studio的adb和终端的adb互相抢占端口
android·adb·android studio
fatiaozhang95273 天前
浪潮CD1000-移动云电脑-RK3528芯片-2+32G-安卓9-2种开启ADB ROOT刷机教程方法
android·网络·adb·电脑·电视盒子·刷机固件·机顶盒刷机
黎宇幻生3 天前
Java全栈学习笔记30
android·adb
今人不见古时月,今月曾经照古人5 天前
将 Android 设备的所有系统日志(包括内核日志、系统服务日志等)完整拷贝到 Windows 本地
windows·adb
zhangphil5 天前
Android adb shell命令分析应用内存占用
android·adb
华农第一蒟蒻5 天前
Elasticsearch赋能3D打印机任务统计分析
java·大数据·spring boot·后端·elasticsearch·adb·maven
一个CCD5 天前
MySQL主从复制之进阶延时同步、GTID复制、半同步复制完整实验流程
android·mysql·adb