android adb shell "device not found" 或 adb devices 无设备

本文分享了在使用ADB连接设备进行调试时遇到的“设备未找到”问题的解决过程。作者尝试了多种方法,包括更新ADB版本、重启服务、修改硬件ID等,最终发现重新安装手机驱动才是关键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当前项目由于需要使用手机USB接口连接一个外设, 所以想用WIFI连接电脑进行调试, 但是在cmd中始终找不到设备:

adb shell  "device not found"

adb decices  列表为空

试过打开360助手, 连接手机 , 然后可以找到设备了    然后 adb tcpip 8888    adb connect [ip:8888]  就成功了.

但我却是个强迫症重度患者, 不想一直开着360 , 于是搜索解决方案:

 

 1. 手机usb 数据线连接pc, 在设备管理器里看有没的黄色的未安装驱动的设备,有就把手机驱动装下

 2. 在cmd里直接adb shell,有问题的话会出现"device not found",参考网上的说法“adb kill-server” 再"adb start-server"

 3. 在任务管理器里把adb.exe关掉,再把IDE也关掉,重启

 4. adb版本,最好升级成最新的,如果有这个文件夹的话“platform-tool”,把里边的东西都复制到“tool”文件夹中(覆盖)

 5. 有人说把tool文件夹里的adbWinApi.dll以及adbwinUsbApi.dll复制到windows\System32下去。再重启(我没试)

 6.adb nodaemon server:检测5037端口是否被占用; 
 6.2、netstat -ano | findstr “5037”:查看是什么进程占用了5037端口; 
 6.3、tasklist | findstr “21152”:查看这个进程是由哪个程序创建的(21152就是占用5037端口的一个进程的PID); 
 6.4、taskkill /f /pid 21152:将进程关掉; 

 7.修改硬件ID; 
 7.1、右键我的电脑->管理->设备管理->Android Phone.在这里我们可以看到对应android设备的驱动。 
 7.2、右键属性>详细信息,在属性(p)选项中选择硬件Id,记录下面的值(v)中的信息,如:

  USB\VID_2A45&PID_0C02&REV_????&MI_01
  USB\VID_2A45&PID_0C02&MI_01
  主要关注2A45和0C02这两个值。 
 7.3、在电脑中找到android开发下载的sdk目录(假设你已经通过sdk manager下载了),进入\extras\google\usb_driver文件夹  下,找到android_winusb.inf并打开。在文件中找到[Google.NTx86](针对32位平台,64位同理添加)这一行,在下面可以看到 很多android设备的驱动信息,这里我们只需要仿照这种文件的格式,复制这些驱动信息,并用2中获取的2A45和0C02来修改,  保存并关闭。卸载掉原来驱动程序,重启电脑。

 

以上网上搜索的方案 , 基本都试过,  问题依然.

本来都放弃了, 后来一个偶然间, 仔细看了下弹窗的内容, 有关于驱动什么的 (难道我之前没装吗? 想不起来了!)  ,再次把驱动安装了一遍   ,我去   瞬间见证奇迹了   哎 真是个S...

(由于之前手机连接电脑后会有弹窗提示, 我直接关掉弹窗, AS和360助手使用都没有问题, USB使用也没有问题   所以就忽略了)

<think>我们正在解决ADB刷机时出现的"Device not found"错误。根据引用[1],adb的运行原理是PC端的adb server与手机端的adbd建立连接。因此,出现此错误通常意味着连接未建立。 引用[2]提到了adb reboot bootloader等命令,说明在进入bootloaderrecovery模式时也可能用到adb。 根据引用[4],在adb命令中路径的书写格式很重要,但当前问题不涉及路径,而是设备连接问题。 解决步骤: 1. 检查USB连接和调试模式:确保手机已开启USB调试,并且连接模式为文件传输MTP(有些设备需要选择传输文件才能连接adb)。 2. 检查设备驱动:在电脑设备管理器中查看是否有未识别的设备Android Composite ADB Interface是否正常安装。 3. 重启adb服务:有时adb server可能出现问题,可以尝试终止并重启。 4. 检查设备授权:如果是第一次连接,手机端会弹出授权提示,需要允许。 5. 更换USB线接口:物理连接问题也可能导致。 6. 在设备进入bootloader模式后,使用fastboot devices检查设备是否被识别(因为刷机时可能需要进入bootloader模式,而adb在bootloader模式下不可用,此时应使用fastboot命令)。 具体步骤: 步骤1:基础检查 - 确保手机设置中“开发者选项”已打开,并且“USB调试”已开启。 - 连接电脑后,下拉通知栏,将USB连接模式设置为“文件传输”“MTP”(不同设备可能有不同选项,但通常需要传输文件模式)。 - 在电脑上运行命令:`adb devices`,查看设备列表中是否有设备。如果显示为`unauthorized`,则需要在手机上弹出的授权对话框中点击允许。 步骤2:重启adb服务 - 在命令行中执行: ``` adb kill-server adb start-server ``` - 再次运行`adb devices`。 步骤3:检查驱动(Windows) - 打开设备管理器(在Windows中可通过右键点击“此电脑”->“管理”->“设备管理器”)。 - 查看“其他设备“便携设备”中是否有带有感叹号的设备者名为“Android”的设备。 - 右键点击该设备,选择“更新驱动程序”,然后选择“浏览我的电脑以查找驱动程序软件”,可以手动指定驱动路径(通常驱动在Android SDK的extras/google/usb_driver目录下,者使用手机厂商提供的驱动)。 步骤4:尝试其他连接模式 - 有些设备需要切换不同的USB模式(如PTP模式)才能正确连接,可以尝试切换。 - 者尝试在开发者选项中打开“USB配置”,选择MTPPTP。 步骤5:检查USB线 - 使用原装USB线,避免使用仅能充电的线缆。 步骤6:在bootloader模式下使用fastboot - 如果是在刷机过程中,当设备进入bootloader模式后,adb命令将不再可用,此时应使用fastboot命令。确保已安装fastboot工具,并运行: ``` fastboot devices ``` 如果此时设备能被识别,则说明adb无法在bootloader模式下使用是正常的(因为bootloader模式下运行的是fastbootd,而不是adbd)。 步骤7:检查电脑的ADB版本 - 更新Android SDK Platform-Tools到最新版本,有时旧版本的adb可能无法识别新设备。 步骤8:检查电脑的USB端口 - 尝试更换电脑上的USB端口,尤其是使用机箱后置的USB端口(通常更稳定)。 如果以上步骤仍然无法解决问题,可能需要考虑设备硬件问题电脑系统问题。 根据引用[1]中提到的adb运行原理,确保手机端的adbd进程正在运行(正常情况下,开启USB调试后adbd会自动运行)。 最后,如果设备在正常开机状态下adb devices能识别,但在刷机模式(如recoverybootloader)下无法识别,则需注意: - 在recovery模式下,有些第三方recovery可能没有开启adbd,所以无法连接。而bootloader模式下必须使用fastboot。 因此,在刷机时,如果是在bootloader模式下,应使用fastboot命令而不是adb命令。 相关问题: 1. 如何开启Android设备的USB调试模式? 2. 如何安装Android设备的USB驱动程序? 3. fastboot命令无法识别设备怎么办? 4. 如何更新ADB和Fastboot到最新版本?</think>### 解决 ADB 刷机时 "Device not found" 错误 当使用 ADB 刷机出现 "Device not found" 错误时,表明 PC 端的 adb server 无法与手机端的 adbd 守护进程建立连接[^1]。以下是系统化的解决方案: --- #### 一、基础连接检查(解决 80% 问题) 1. **USB 调试确认** ```android 设置 > 开发者选项 > USB 调试(确保开启) ``` > 首次连接需在手机弹窗中授权「允许USB调试」 2. **USB 连接模式切换** - 下拉通知栏 > 更改 USB 用途 > 选择「文件传输」「MTP」 - 避免使用「仅充电」模式(会阻断 ADB) 3. **物理连接排查** - 更换原装 USB 数据线(劣质线仅支持充电) - 尝试电脑不同 USB 接口(优先使用主板后置接口) - 移除 USB 集线器(直连电脑) --- #### 二、驱动与软件层修复 4. **ADB 服务重启(关键步骤)** ```bash adb kill-server # 终止服务 adb start-server # 重启服务 adb devices # 检查设备列表 ``` > 若设备显示 `unauthorized`,需在手机重新授权[^1] 5. **驱动安装(Windows 重点)** - 设备管理器 > 未知设备 > 更新驱动 - 手动选择驱动: ``` Android ADB Interface Android Composite ADB Interface ``` > 驱动包可从[Google USB Driver](https://developer.android.com/studio/run/win-usb)下载 6. **ADB/Fastboot 工具更新** ```bash # 通过 Android SDK 更新 sdkmanager --update sdkmanager "platform-tools" ``` --- #### 三、特殊场景解决方案 7. **Bootloader 模式连接失败** ```bash adb reboot bootloader # 进入 fastboot 模式[^2] fastboot devices # 检查 fastboot 连接 ``` > 若仍不识别,尝试: > `fastboot oem unlock`(需提前开启OEM解锁) 8. **多用户环境指定设备** ```bash adb -s <设备ID> shell # 指定设备ID操作[^3] ``` 获取设备ID:`adb devices -l` 9. **Linux/Mac 权限修复** ```bash lsusb # 查看设备总线号 sudo vi /etc/udev/rules.d/51-android.rules ``` 添加规则: ```udev SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666" ``` > 重启服务:`sudo udevadm control --reload` --- #### 四、终极排查方案 10. **端口冲突检测** ```bash netstat -ano | findstr "5037" # Windows lsof -i :5037 # Linux/Mac ``` 结束占用进程:`taskkill /PID <进程ID> /F` 11. **替代连接方式** - 使用 Wi-Fi 调试: ```bash adb tcpip 5555 adb connect <手机IP>:5555 ``` - 更换电脑尝试(排除主机问题) --- ### 故障排除流程图 ```mermaid graph TD A[Device not found] --> B{USB调试开启?} B -->|否| C[开启开发者选项] B -->|是| D{设备管理器识别?} D -->|否| E[安装ADB驱动] D -->|是| F{adb devices显示设备?} F -->|否| G[重启ADB服务] F -->|是| H[正常刷机] G --> I{仍失败?} I -->|是| J[检查端口冲突] J --> K{解决?} K -->|否| L[更换电脑/数据线] ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值