安卓 - OnePlus无法通过ADB工作

7
我已经尝试了一段时间,我的问题是使用我的OnePlus通过ADB运行应用程序。如预期的那样,当我连接未启用USB调试的OnePlus时,它在设备管理器中以“便携式设备”的形式连接。然而,当我开启USB调试时,设备从计算机完全“断开连接”(我甚至无法访问其中的文件)。
我尝试了许多教程和驱动程序安装程序,但都没有成功。我有最新的Android Studio和最新的ADB驱动程序。如果有人能指引我正确的方向,那将不胜感激!
更新: 当我把古老的三星Galaxy SII连接到电脑上时,它可以正常工作。我只能认为这是我的OnePlus的问题。

请问您使用的操作系统/机器型号是什么(Win 7、Win 8、Win 10/Mac/Linux)? - Morrison Chang
@MorrisonChang 我正在运行Windows 10。 - mattrick
11个回答

13

我成功地解决了这个问题,但花费了数小时的时间,遵循以下非常有用的说明。我还需要将设备设置为 PTP模式,正如@mattrick在早期回答中提到的。

如果您尚未安装Android SDK,请先安装它。

  1. 打开“开始”菜单。选择 Android SDK 工具 -> SDK 管理器。
  2. 右键单击它并选择“以管理员身份运行”。
  3. 以管理员身份运行SDK管理器非常重要。如果只是单击它,SDK管理器会启动,但在尝试安装新组件时会遇到错误!
  4. 在SDK管理器中选择“Extras->Google USB Driver”。选中复选框并单击“安装1个包”。
  5. 当安装Google USB驱动程序时,请插入您的设备。 警告:驱动程序不会自动安装。我们将在下一步手动安装它。
  6. 打开“系统属性”对话框(按键盘上的Win+Break或在“开始”菜单中找到“计算机”,右键单击它并选择“属性”。)
  7. 单击“设备管理器”链接。在设备管理器中找到您的Android设备。然后右键单击它并选择“更新驱动程序软件”。
  8. 选择“浏览我的计算机以查找驱动程序软件”。
  9. 选择“从计算机设备驱动程序列表中选择”。
  10. 选择“显示所有设备”。
  11. 按“有磁盘”按钮。
  12. 输入Google USB驱动程序的路径。通常它位于以下目录中:

C:\Program Files (x86)\Android\android-sdk\extras\google\usb_driver

  1. 从设备类型列表中选择“Android ADB接口”。
  2. 通过单击“Yes”确认驱动程序的安装。
  3. 再次通过单击“安装”确认安装。
  4. 安装完成后,单击“关闭”。

希望这可以帮助您!这是我的参考来源:visualgdb.com


我可以确认这个方法是有效的。我是一名安卓开发者,曾经在小米、HTC和OnePlus 6T设备上遇到过同样的问题。官方驱动通常不提供ADB兼容性。你只需要显式地安装Google的通用ADB驱动程序。如果你做得正确,你会在你的设备上看到一个对话框窗口,询问你是否接受来自具有给定ID的特定计算机的调试。除非你确认,否则你将无法调试应用程序。 - Kirill Karmazin
看着冗长的步骤,不要选择其他需要变通的答案!这个方法完美解决问题! - Virat18

12

我已使它工作:

事实证明,当您的设备通过媒体设备(MTP)连接时,ADB将无法通信。在这种情况下,您必须以相机(PTP)模式连接才能使其正常工作。非常烦人,但如果有人遇到相同问题,则很容易解决。


3

在 Ubuntu 16.04 上,经过数个小时尝试,这是适用于我的 OnePlus5 的方法:

  1. 开启设备的“开发者选项”和“USB 调试”功能
  2. 将设备连接到电脑上
  3. 获取 4 位设备 ID,加入到 udev 规则中。查看 - https://reactnative.dev/docs/running-on-device
  4. 确保 /etc/udev/rules.d/51-android.rules 中包含以下这行代码,2a70 需要替换为您的设备 ID SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
  5. 运行 sudo chmod a+r /etc/udev/rules.d/51-android.rules 命令
  6. 将您的设备的“USB 用途”设置更改为“MIDI”
  7. 运行 sudo adb kill-server && sudo adb start-server 命令
  8. 运行 adb devices 命令,现在应该可以显示您的设备

3

我认为问题是由ADB驱动程序引起的。

我也曾遇到过micromax平板电脑的同样问题。

尝试使用通用ADB驱动程序。安装并检查。


你有相关链接吗?我尝试过多个链接,包括这个 - mattrick

1

前往设备管理器,右键点击手机并选择更新驱动程序。应该有一个从列表中选择驱动程序的选项。在列表中找到通用ADB设备并选择它。


直到我把它改成PTP,它实际上甚至没出现在我的设备管理器中。那时,它就正常工作了。 - mattrick

1

对我来说,现有的答案都没有解决我的问题,因为我在尝试在我的Ubuntu机器上使用adb访问我的OnePlus 6T时遇到了问题。然后我注意到,在关闭USB调试的情况下,笔记本电脑正在挂载来自手机的只读分区,其中包括一个Windows可执行文件、一个Mac OSX .dwg文件和一个Linux .sh脚本。运行Linux脚本并重新启用USB调试,然后允许adb检测到手机。

为了完整起见,我将在下面粘贴shell脚本,但它主要做的事情是将字符串0x2a70添加到文件 ~/.android/adb_usb.ini 中,然后重新启动adb守护进程。

# adb configuration script
PATH=$PATH:/bin:/sbin:/usr/sbin
ANDROID_HOME=~/.android
ANDROID_CONFIG=~/.android/adb_usb.ini
CUST_VID="0x2a70"
if [ -e $ANDROID_HOME ] ; then
   echo "android home is exist!"
else
   echo "creat android home!"
   mkdir $ANDROID_HOME
fi
grep $CUST_VID $ANDROID_CONFIG 2>/dev/null
if [ $? -eq 0 ] ; then
   echo VID $CUST_VID is already configured.. 
   echo "adb should be OK!"
   exit 0
else
   echo config adb ...
   echo $CUST_VID >> $ANDROID_CONFIG
fi
adb kill-server
if [ $? -eq 0 ] ; then
  echo "OK! You can use adb now!"
  exit 0   
else
   echo "try sudo exec adb.."
   sudo adb kill-server
   if [ $? -eq 0 ] ; then
       echo "OK! You can use adb now!"
       exit 0
   else
       echo "Please do command \"adb kill-server\""
   fi
fi
exit 0

0

在一加设备中启用以下选项。

  • 启用开发者选项
  • 打开USB调试

通过执行以上步骤,即可在不进行设备Root的情况下使用ADB命令。


0

0

确保电缆正确连接到您的手机。

我知道这听起来很愚蠢,但这就是发生在我身上的事情。我正在使用一个新的手机壳,当我连接电缆时,手机正在充电,但无法通过ADB显示。后来我发现电缆没有完全插入手机。当我把手机从壳子里拿出来时,一切都开始按预期工作了。


0

如果以上选项不起作用,请尝试以下方法:

  1. 列出项目
  2. 打开开发者选项
  3. 撤销USB授权
  4. 关闭USB调试
  5. 重新连接USB电缆
  6. 打开USB调试
  7. 尝试运行应用程序>设备上会弹出一个请求权限的弹窗。
  8. 允许

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接