Android设备无法通过adb识别

时间:2014-03-17 09:17:38

标签: android adb nexus-4

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

以下是该问题的一些细节:

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

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

    1. 我重启了我的设备 - 这没有解决问题
    2. 我将设备设置为PTP模式 - 解决了这个问题。
    3. 所以我将设备重置为MTP模式&再次调试模式以检查由于某种原因它是否仍会被adb识别。当它处于MTP模式时,它肯定不会被adb识别。我不知道它是如何在几天前得到认可的,因为我从未将我的设备设置为PTP模式。 无论如何,我的问题的解决方案是我的Nexus 4必须处于PTP模式,当然还有调试模式才能被adb识别。

      我没有尝试任何其他建议,因为我的问题已经解决了我现在的司机。

15 个答案:

答案 0 :(得分:13)

通常,我认为你的USB连接应设置为使用MTP(媒体传输),但是,我无法让我的电脑识别我的设备(Nexus 4)。奇怪的是,将USB连接设置为相机让它对我有用。

答案 1 :(得分:8)

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

实际上,解决方案非常简单。它总是在那里,但我们往往会错过它。

<强>先决条件

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

<强>步骤

1)连接您的设备,看看是否在&#34; Android设备&#34;部分。如果是,那就OK了,否则,检查&#34;其他设备&#34;部分并手动安装驱动程序。

2)请务必检查&#34; Android Composite ADB Interface&#34;。这是Android需要ADB工作的界面。

3)转到&#34; [SDK] / platform-tools&#34;,按住Shift键并打开命令提示符,然后输入&#34; adb devices&#34;并查看您的设备是否列在那里,并带有唯一ID。

4)如果是,则此时已成功检测到ADB。接下来,写&#34; adb reboot bootloader&#34;打开引导程序。此时,请检查&#34; Android设备&#34;下的设备管理器,您将找到&#34; Android Bootlaoder Interface&#34;。实际上对我们来说并不重要。

5)接下来,使用音量减小键,转到&#34;恢复模式&#34;。

6)这是重要的 - 此时,请检查&#34; Android设备&#34;下的设备管理器。如果您根本没有看到本节或本节下的任何内容,那么我们需要手动安装它。

7)检查&#34;其他设备&#34;部分并找到那里列出的设备。右键单击 - &gt;更新驱动程序 - &#34;浏览我的计算机......&#34; - &GT; &#34;让我从列表中挑选...&#34;并选择&#34; ADB Composite Interface&#34;。

8)现在,您可以看到您的设备列在&#34; Android设备&#34;甚至在恢复中。

9)写&#34; adb设备&#34;此时,您将看到列出的设备具有相同的ID。

10)现在,只需编写&#34; adb sideload [update] .zip&#34;你已经完成了。

希望这有帮助。

答案 2 :(得分:7)

从根本上说,问题与无法使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&amp; PID_4EE2&amp; 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目录。在那里有一个&#34; oemN.inf&#34;文件(其中N是一个在您的系统上会有所不同的数字),它是android_usb.inf的副本 - 要做的是查找哪个文件并将其删除。 Windows在此处保留INF文件的缓存,我们发现有时使用较旧的缓存副本而不是较新版本。

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

现在使用Windows资源管理器并删除&#34; oemNN。*&#34;上面匹配的文件(只有那些带有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 select Hardware Ids下。您应该看到USB \ VID_18D1&amp; PID_4EE2&amp; MI_01

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

答案 3 :(得分:6)

尝试使用PdaNet。您可以从here

下载

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

显然要确保你&#34;调试usb&#34;选项&#34;开发者选项&#34;是的。

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

答案 4 :(得分:5)

我最近遇到过这个问题(但之前调试过wifi工作正常)因为上述答案都没有让我分享我的所作所为。

  1. 转到开发者选项
  2. 查找选择USB配置并单击
  3. 选择MTP(媒体传输协议)
  4. 注意:如果设置为此选项,请先选择另一个选项(如PTP),然后再将其设置为MTP。

答案 5 :(得分:5)

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

答案 6 :(得分:3)

连接USB,在Android设备上设置&gt;开发人员选项&gt;撤销USB调试授权USB调试。取下USB并再次连接,然后&#34;允许USB调试&#34;。

答案 7 :(得分:2)

通过点击内部版本号7次来启用Developer mode对我来说是有效的。

答案 8 :(得分:1)

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

答案 9 :(得分:1)

对于那些答案都不起作用的人......如果打开,请尝试关闭chrome中的chrome://inspect/#devices选项卡......这对我有用。

答案 10 :(得分:0)

查找设备的驱动程序并进行安装 这将是设备未检测到问题的结束 Windows有驱动程序问题,有时会因覆盖现有驱动程序而搞乱

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

答案 11 :(得分:0)

确保使用USB而不是闪电电缆进行连接。我在尝试使用两端都带有闪电电缆的电线进行连接时遇到了这个问题,但它没有列出该设备。但是切换到USB到闪电电缆是可行的。

答案 12 :(得分:0)

检查USB电缆确实能够传输数据。某些便宜的设备,尤其是那些打算为非电话/计算机设备充电的设备,可能仅支持充电。

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

答案 13 :(得分:0)

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

答案 14 :(得分:-1)

  1. 在您的计算机上下载并安装Moborobo软件。
  2. 通过USB线连接设备并进行USB调试。
  3. 现在打开moborobo,它将连接到你的android。
  4. 保持联系,现在您的设备应该识别为adb设备并获取 列出。