【问题标题】:Android Device not recognized by adbadb 无法识别 Android 设备
【发布时间】:2014-03-17 09:17:37
【问题描述】:

我的 Android 设备不再被 eclipse 和 adb 识别。 我的操作系统是 Windows 7 64 位,我使用的是带有 Stock Android 4.4.2 的 Nexus 4。

以下是有关该问题的一些详细信息:

  1. 昨天我可以在我的设备上从 eclipse 运行 Android 项目,没有任何问题。我在 Eclipse 上所做的唯一可能导致此问题的事情是使用 developer.android (https://developer.android.com/tools/support-library/setup.html) 上的本指南将 v7 appcompat 支持库从资源安装到 Eclipse。
  2. 该设备在不处于调试模式时仍被识别为 Windows 中的普通多媒体驱动器。
  3. 当我尝试在 Eclipse 中运行 Android 项目或尝试在控制台中使用 adb devices 查看 adb 是否识别它时,设备处于开发者模式和调试模式。
  4. Google USB 驱动程序已通过 ADK 管理器安装
  5. Windows 的 USB OEM 驱动程序已根据 android-developers 网站上的教程安装(参见:https://developer.android.com/tools/extras/oem-usb.html
  6. 我尝试使用命令adb kill-serveradb start-server 重新启动adb,并再次使用adb devices 检查设备是否被识别。该设备仍未在控制台上列出。
  7. 重新启动 windows 和 eclipse 并没有解决这个问题。

有人知道这个问题的解决方案吗? 提前致谢!

更新:感谢回复,问题已解决(暂时)。 我按此顺序尝试了以下建议:

  1. 我重新启动了我的设备 - 这并没有解决问题
  2. 我将设备设置为 PTP 模式 - 这解决了问题。

所以我再次将我的设备重置为 MTP 模式和调试模式,以检查它是否仍会因某种原因被 adb 识别。当它处于 MTP 模式时,它肯定不会被 adb 识别。我不知道几天前它是如何被识别的,因为我从未将我的设备设置为 PTP 模式。 无论如何,我的问题的解决方案是我的 Nexus 4 必须处于 PTP 模式,当然还要处于调试模式才能被 adb 识别。

我没有尝试任何其他建议,因为我的问题已通过我当前的驱动程序解决。

【问题讨论】:

  • 您是否/有机会在另一台机器上测试您的设备?您是否尝试过重启设备?
  • 尝试以管理员身份重启 adb 服务器..
  • 尝试以 PTP 模式连接您的设备。有时它会起作用..
  • 同样的问题,这一切都是在我更新 sdk 后发生的,将其更改为 PTP 模式有效。
  • 试试这个帖子里的解决方案*.com/questions/24264562/…

标签: android adb nexus-4


【解决方案1】:

一般来说,我认为您的 USB 连接应该设置为使用 MTP(媒体传输),但是,我无法让我的计算机识别我的设备 (Nexus 4)。奇怪的是,将 USB 连接设置到相机让它对我有用。

【讨论】:

  • 也为我工作
  • Nexus 7 2012 - 跳了好几天 - 终于将 MTP 更改为相机,一切都变得栩栩如生!谢谢!谢谢!谢谢! HADYA 支持一百次?!?
  • 在我的情况下是 USB Transferring Images 工作模式
【解决方案2】:

我也遇到了同样的问题,并尝试了几乎所有可能的方法,从手动安装驱动程序到编辑 winusb.inf 文件。但没有什么对我有用。

其实解决方法很简单。它总是在那里,但我们往往会错过它。

先决条件

here 下载最新的 Android SDK 和最新的驱动程序。启用 USB 调试并打开设备管理器并保持打开状态。

步骤

1) 连接您的设备并查看是否在“Android 设备”部分下检测到它。如果是,那么没问题,否则,检查“其他设备”部分并手动安装驱动程序。

2) 一定要勾选“Android Composite ADB Interface”。这是 Android 运行 ADB 所需的接口。

3) 转到“[SDK]/platform-tools”,按住 Shift 键并单击此处并打开命令提示符并键入“adb devices”,然后查看您的设备是否在此处列出并带有唯一 ID。

4) 如果是,则此时已成功检测到 ADB。接下来,写入“adb reboot bootloader”以打开引导加载程序。此时检查“Android设备”下的设备管理器,你会发现“Android Bootlaoder界面”。实际上它对我们来说并不重要。

5) 接下来,使用降低音量键,移至“恢复模式”。

6) 这很重要 - 此时,请检查“Android 设备”下的设备管理器。如果您在此部分或此部分下根本看不到任何内容,那么我们需要手动安装它。

7) 检查“其他设备”部分并在其中找到您的设备。右键单击->更新驱动程序-“浏览我的计算机...”->“让我从列表中选择...”并选择“ADB复合接口”。

8) 现在您甚至可以在“恢复”中看到您的设备列在“Android 设备”下。

9) 此时写入“adb devices”,您将看到您的设备以相同的 ID 列出。

10) 现在,只需编写“adb sideload [update].zip”即可。

希望这会有所帮助。

【讨论】:

  • @AtiraRoy 这个帮助了我:7) Check the "Other devices" section and find your device listed there. Right click -> Update drivers -"Browse my computer..." -> "Let me pick from a list..." and select "ADB Composite Interface" 谢谢!
  • @AtiraRoy 如此完美的解释。非常感谢!
  • 如果有人没有看到 ADB 复合接口...您必须选择“浏览所有设备”,然后从您之前下载的 google usb 驱动程序 .zip 中转到名为“usb_driver”的文件夹。然后选择“android_winusb.inf”文件,然后你会看到“ADB Composite Interface”
【解决方案3】:

我最近遇到了这个问题(但在通过 wifi 进行调试之前工作正常)并且由于上述答案都没有帮助我让我分享我所做的事情。

  1. 转到开发者选项
  2. 找到选择 USB 配置并单击它
  3. 选择 MTP(媒体传输协议)

注意:如果设置为此选项,请先选择另一个选项,例如 PTP,然后再将其设置为 MTP。

更新

PTP 代表“图片传输协议”。当 Android 使用此协议时,它在计算机上表现为数码相机。

MTP 实际上是基于 PTP 的,但增加了更多的功能,或者说是“扩展”。 PTP 的工作原理与 MTP 类似,通常用于数码相机。

【讨论】:

  • @sdgluck,我很高兴它对你有用。我刚刚更新了我的答案以阐明差异,以确保您不会错过扩展功能。
【解决方案4】:

这听起来可能很傻,但在我的情况下,USB 电缆太长(即使质量很好)。它适用于我的平板电脑,但不适用于手机。 要检查这一点,如果您在 Linux 上运行,请运行 lsusb 以确保您的设备至少正式连接到 USB 端口。

【讨论】:

  • 我的设备正在通过 usb 充电,但没有被 adb 识别....
  • @KristiJorgji 我有同样的问题,充电但没有 adb。我只是使用了不同的 USB 数据线,它工作正常。
【解决方案5】:

尝试使用 PdaNet。你可以从here下载它

它会在您插入设备时安装缺少的驱动程序。

显然要确保“开发者选项”中的“调试 USB”选项已打开。

另外,重要的是在使用之前卸载任何设备已安装的驱动程序。

【讨论】:

  • @user3135185 你按照我的解释解决了这个问题吗?
【解决方案6】:

从根本上说,这个问题与无法让 MTP+ADB 工作有关,而例如 PTP+ADB 可能工作。就我而言,当我插入 Nexus 5 时,Windows 7 将只安装完全忽略 ADB 的 MTP 驱动程序。我在其他任何地方都找不到解决这个问题的好方法,所以在这里我提供步骤(我从其他来源复制的一些步骤):

0) 拔下 Nexus 5。确保选择了 MTP 和 ADB。

1) 确保 Google SDK 中的 sdk\extras\google\usb_driverandroid_winusb.inf 具有以下行(在该文件的两个位置):

;Google Nexus(通用)

%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4EE2&MI_01

注意:VID_18D1 是 Google VID,PID_4EE2 是 MTP+ADB 的 PID,MI_01 表示 ADB 在接口 1 上(MTP 在接口 0 上)。

您可以通过将 Nexus 5 插入 Linux 系统并输入 lsusb 来查看界面上的内容。

2) 首先删除所有已安装的 Google USB 驱动程序。一个很好的工具叫做 USBDeview,可以在以下位置找到: http://www.nirsoft.net/utils/usb_devices_view.html 下载该工具并运行它(无需安装)。查看 USBDeview 窗口最左侧的彩色状态指示器。绿色表示设备功能正常。粉红色表示设备可以拔下电源并正常工作(尽管它实际上可能无法正常工作)。红色表示禁用的 USB 设备。灰色(下图圈出)表示设备已安装,但未连接。 其次,删除标题中带有“Google”、“Linux”、“ADB”或“Android”字样的所有灰色项目。

3) 现在删除旧缓存的 Google *.inf 文件。打开 Windows 资源管理器并导航到 C:\Windows\INF 目录。那里的某个地方有一个“oemN.inf”文件(其中 N 是一个在您的系统上会有所不同的数字),它是 android_usb.inf 的副本——要做的是找到哪个文件并将其删除。 Windows 在此处保留 INF 文件的缓存,我们发现有时会使用较旧的缓存副本而不是较新的版本。

使用 Windows 资源管理器查找哪一个的简单方法: - 在资源管理器的搜索框中,输入不带引号的“androidwinusb86.cat”。 - 通常搜索将为空,因为没有文件名具有此模式。 - 转到工具/文件夹选项,单击搜索选项卡,然后单击始终搜索文件名和内容。单击应用 - 再次搜索。这次它应该列出一些文件,例如“oem90.inf”(您将拥有一个或多个,具有不同的编号)。

现在使用 Windows 资源管理器并删除上面匹配的“oemNN.*”文件(仅那些包含 androidwinusb 的文件。)。

4) 我们现在想在 windows 发现 ADB 之前禁用 windows 安装 MTP。现在在同一目录中搜索 wpdmtp.* 文件。这些文件的存在将强制在同一(复合)设备中安装 MTP,而不考虑 ADB 类。将这些文件移出 \inf 文件夹

5) 再次插入设备。这一次,MTP 和 Android ADB 驱动安装都会失败。

6) 在设备管理器中查找其他设备,展开后应显示 Nexus 5 和 MTP。右键单击并导航到 sdk\extras\google\usb_driver\android_winusb.inf 来更新 Nexus 5。

将 wpdmtp.* 文件移回 \inf 文件夹。右键单击 MTP 设备并更新。

7) 如有必要,请在您的 Nexus 5 上确认此 PC 可以访问手机。

8) 如果一切按预期进行,您应该在设备管理器中看到以下内容:

  • 扩展 Android 设备。右键单击Android Composite ADB Interface,选择Properties,选择选项卡Details,在Property 下选择Hardware Ids。您应该会看到 USB\VID_18D1&PID_4EE2&MI_01

  • 扩展便携式设备。右键单击 Nexus 5,选择属性,选择选项卡详细信息,在属性下选择硬件 ID。您应该会看到 USB\VID_18D1&PID_4EE2&MI_00

【讨论】:

  • 非常好的文章。谢谢。
  • 太棒了!使用了两个注意事项: 1. 必须重新启动设备并设置为 PTP 模式。 2. 我没有任何要删除的 oem 缓存文件,并且在设备管理器中只有 Nexus 作为 Android 设备。
【解决方案7】:

连接 USB 后,在 android 设备设置 > 开发人员选项 > 撤销 USB 调试授权 USB 调试。拔掉 USB 并重新连接,然后“允许 USB 调试”。

【讨论】:

    【解决方案8】:

    对于那些没有任何答案的人,请尝试关闭 Chrome 中的 chrome://inspect/#devices 选项卡(如果它已打开)。这对我有用。

    【讨论】:

    • 天哪,这行得通。经过一个小时的谷歌搜索和尝试不同的解决方案,这样一个简单的解决方案!
    【解决方案9】:

    转到提示命令并键入“adb devices”。如果它为空,请确保您允许“MTP 传输”或类似功能,并且您在手机上启用了调试。

    要启用调试,请按照以下教程进行操作: https://www.kingoapp.com/root-tutorials/how-to-enable-usb-debugging-mode-on-android.htm

    然后再次输入“adb devices”。如果其中列出了设备,那么它现在应该可以工作了。

    【讨论】:

      【解决方案10】:

      将您的环境变量Path 设置为指向adb 应用程序所在的位置:[directory of sdk folder]\platform-tools

      【讨论】:

        【解决方案11】:

        通过点击内部版本号 7 次启用 Developer mode 对我有用。

        【讨论】:

          【解决方案12】:

          确保您使用的是 USB 而不是闪电电缆。我在尝试使用两端带有闪电电缆的电源线进行连接时遇到了这个问题,但它不会列出该设备。但改用 USB 转闪电数据线是可行的。

          【讨论】:

            【解决方案13】:

            为您的设备查找驱动程序并安装它们 您的设备未检测到问题到此结束 Windows 存在驱动程序问题,有时会因覆盖现有驱动程序而变得混乱

            您也可以尝试从Win7卸载驱动并重新安装

            【讨论】:

            • 请注意,对于 Nexus 4,您可以使用 SDK 的“附加”部分中提供的“Google USB 驱动程序”。
            【解决方案14】:

            检查 USB 数据线是否确实能够传输数据。一些更便宜的,尤其是那些旨在为非电话/计算机设备充电的,可能只支持充电。

            您可以通过检查设备是否显示为可挂载文件系统来验证这一点。在 Linux 中,您还可以使用命令lsusb 来检查它是否被检测到。

            【讨论】:

              【解决方案15】:

              对于那些在将他们的 android 设备升级到 android 10 后遇到问题的用户,相同的 PTP 模式选项将按照 user3135185 的规定工作

              【讨论】:

                【解决方案16】:
                1. 在您的计算机上下载并安装 Moborobo 软件。
                2. 通过 USB 数据线连接您的设备进行 USB 调试。
                3. 现在打开 moborobo,它将连接到您的 android。
                4. 保持连接,现在您的设备应识别为 adb 设备并获取 列出。

                【讨论】: