adb 不识别解决办法

在 android 设备的 Linux 内核中把 USB 驱动的 PID VID 修改以后,也许之前的 adb 工具就不能识别设备了,会打印出 "device not found" 的提示,特别是 windows ,adb 驱动也不能用了。

这个时候该怎么办呢?

一,先搞清现在的 PID ,VID 为多少,例如分别为 aaaa、bbbb(十六进制)

      对于 linux 如 ubuntu, 插入 设备,再查询 /sys/bus/usb/ 下的相应设备,如 "1-1" 下的 idVender, idProduct 获得。

      对于 windows, 可从相应设备的属性中获得

二,对于windows:

1. 修改 adb 驱动中的 android_winusb.inf 文件。对照着别的项目加就可以了。

例如:

; My product
%CompositeAdbInterface% = USB_Install, USB\VID_AAAA&PID_BBBB

%SingleBootLoaderInterface% = USB_Install, USB\VID_AAAA&PID_BBBB&MI_01

2. 右击我的电脑->属性->高级->环境变量,添加 ANROID_SDK_HOME 环境变量。如果你有 android SDK, 就设成 SDK 的路径;如果没有,那也没关系,设为你觉得方便的任何路径。

3. 在前面设置的 ANDROID_SDK_HOME 对应的路径下,寻找 .android 目录,如果没有就创建一个;在 .android 目录下新建一个文件,叫adb_usb.ini, 记住,后缀是 "ini" 哦;添加前面获得的 VID 到 adb_usb.ini 中,如 0xAAAA。

4. 然后安装 adb 驱动

5. 进入 DOS cmd, 分别输入 adb kill-server, adb start-server, adb devices;若能看到 devices 列出,那么就成功了。

三,对于linux

1. 在用户的 home 目录下,寻找 .android 目录,如果没有就创建。在 .android 目录下新建一个文件,叫 adb_usb.ini, 记住,后缀是 "ini" 哦;添加前面获得的 VID 到 adb_usb.ini 中,如 0xAAAA。

2. 在 shell 中 分别输入 adb kill-server, adb start-server, adb devices;若能看到 devices 列出,那么就成功了。

这里 kill-server,是 kill 掉 adb 的 daemon,否则,adb 还是保留着先前的 Vender 信息。start-server 就加载了新的 Vender 信息。


注意:有些人可能用 adb 需要超级用户权限,这时第一步中的home 目录应该为 /root,不想麻烦,直接两个 Home 目录都加上得了。
### React Native 和其他开发环境中解决 `adb devices` 命令无法识别设备的问题 #### 1. 确保设备驱动程序已正确安装 在 Windows 上,如果设备未被识别,则可能是由于缺少合适的 USB 驱动程序。可以通过厂商官网下载并安装对应的驱动程序来解决问题[^1]。 #### 2. 添加手机的 VID 到 `.android/adb_usb.ini` 某些情况下,即使设备连接正常,也可能因为 ADB 尚未配置该设备的供应商 ID (Vendor ID, VID),从而导致无法识别。此时需要手动将设备的 VID 添加到用户的 `.android/adb_usb.ini` 文件中[^2]。具体操作如下: - 查找设备的 VID:可以在设备管理器中找到对应的信息。 - 编辑 `.android/adb_usb.ini` 文件,添加一行类似于 `0xXXXX` 的条目(其中 XXXX 是设备的十六制 VID)。 - 使用命令重新启动 ADB 服务: ```bash adb kill-server && adb start-server ``` #### 3. 安装 Platform Tools 并设置环境变量 如果系统中尚未安装 Android SDK Platform Tools 或者路径未加入系统的 PATH 环境变量,可能会导致 `adb` 可用。建议从官方页面下载最新版本的 Platform Tools,并将其解压后的目录路径添加至环境变量中[^3]。 #### 4. 处理 WSL 下可能存在的问题 当使用 Windows Subsystem for Linux (WSL) 时,需要注意的是,默认情况下 WSL 无法直接访问主机上的硬件资源,因此需要确保 ADB 能够跨平台工作。一种方法是在 Windows 主机上运行 ADB 工具,而脚本逻辑仍然留在 WSL 中执行;另一种方式则是借助第三方工具实现更深层次的集。 #### 5. 对于 Mac 用户尝试简单重启策略 有时简单的解决方案往往最有效,在 macOS 系统下遇到类似的状况时,妨试试关闭终端后再打开一次或者干脆重启整个机器再试一回——这看似笨拙的办法却屡见奇效[^4]。 ```bash # 杀死当前正在运行的服务实例然后再重新加载新的状态信息 adb kill-server && adb start-server ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值