问题描述
使用 Ubuntu 13.10 的 adb 命令尝试重新安装第一代 Nexus 7 设备上的 Android 系统时,遇到了“device not found”的错误。即使 Nexus 7 设备已连接,并且执行了 adb kill-server
和 adb start-server
指令后,也未能成功识别设备。
解决方案
方案1:检查和修改 udev 规则
根据最佳答案建议,可能是由于 udev 规则没有正确配置导致的问题。因此,需要重新调整相关的 udev 规则,并确保当前用户能够访问 adb 设备。
在进行以下步骤前,请先备份现有的 udev 配置文件,以避免意外情况后可以恢复设置。
- 检查当前的udev规则:
bash
lsusb
按照评论中的建议,记录下 Nexus 7 使用 lsusb
命令输出的信息。通常情况下,Nexus 7 设备会以某种特定的方式展示在 USB 接口上。
- 编辑 adb_usb.ini 文件:
编辑$ANDROID_HOME/platform-tools/adb_usb.ini
文件(如果没有此文件,请首先设置环境变量$ANDROID_HOME
),添加你的设备的 USB 厂商 ID 和产品 ID。一般情况如下所示:
ini
# Example for Nexus 7: You may need to find the correct vendor id and product id first.
# Replace with your actual values from lsusb output
0x18d1 0xdbb3
- 手动创建 udev 规则文件(如
/etc/udev/rules.d/51-android.rules
),并添加适当的规则来允许用户访问 adb 设备,示例如下:
ini
# Example udev rule for Nexus 7, you may need to adapt it based on your lsusb output.
SUBSYSTEM=="usb", ATTR{idVendor}<>"18d1", MODE="0666"
保存文件后,重新加载 udev 规则:
bash
sudo udevadm control --reload-rules && sudo service udev restart
- 重启 ADB 服务器:
完成上述步骤后,重启 adb 服务以确保所有更改都生效。
bash
adb kill-server; adb start-server
adb devices
若仍然无法识别设备,请检查相关日志信息(如 /var/log/syslog
或 dmesg
)找出可能存在的错误提示。
方案2:尝试PTP模式
部分用户指出了关于使用PTP (MTP)模式而非默认的MTP (PC)连接模式可能会影响adb识别的问题。
切换至PTP模式:
在Nexus 7设备上,确保选择了USB模式下的 MTP 或 CDC-ACM 模式(而不是默认的 PTP USB PC Connection)。通过点击“设置”的“关于本机”部分并反复按下“构建号”来解锁开发者选项,然后在USB设置中选择正确的连接模式。检查adb设备:
重新运行adb devices
命令来查看是否可以正确识别Nexus 7。如果通过更改连接模式后能正常工作,则后续就可以继续使用该设置来保证 adb 可以稳定进行。
以上步骤应能够帮助你解决 Ubuntu 13.10 下无法用adb识别 Nexus 7 设备的问题,确保正确配置了 udev 规则以及相应的设备信息。如果问题仍然存在,请参照上述的最佳方案逐步检查并尝试修正。