我已经做了很明显的事情——USB驱动程序是从最新的Android SDK安装的,并且平板电脑中的USB调试已打开。
连接 Nexus 7 后,设备在 Windows Device Manager 中显示为“Android Phone”/“Android Composite ADB Device”,其属性显示驱动程序版本 6.0.0.0,因此安装了正确的驱动程序并正常工作。
这也证明设备处于 USB 调试模式,因为如果不是,它会显示在 Windows 的“便携式设备”/“Nexus 7”下。
问题是 adb devices
没有显示任何设备,而且 Eclipse 也(不足为奇)也不提供 Nexus 7 作为运行应用程序的硬件设备。
我已经重新启动了两个设备但没有效果。
我能弄清楚的唯一调试是启用 ADB_TRACE=all
,但这并没有告诉我:
mkh@MULE ~/AppData/Local/Android/android-sdk/platform-tools
$ export ADB_TRACE=all
mkh@MULE ~/AppData/Local/Android/android-sdk/platform-tools
$ adb devices
system/core/adb/adb.c::main():Handling commandline()
system/core/adb/adb_client.c::adb_query():adb_query: host:devices
system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:version
system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 100
system/core/adb/transport.c::writex():writex: fd=100 len=4: 30303063 000c
system/core/adb/transport.c::writex():writex: fd=100 len=12: 686f73743a76657273696f6e host:version
system/core/adb/transport.c::readx():readx: fd=100 wanted=4
system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
4f4b4159 OKAY
system/core/adb/adb_client.c::_adb_connect():_adb_connect: return fd 100
system/core/adb/adb_client.c::adb_connect():adb_connect: service host:devices
system/core/adb/transport.c::readx():readx: fd=100 wanted=4
system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
30303034 0004
system/core/adb/transport.c::readx():readx: fd=100 wanted=4
system/core/adb/transport.c::readx():readx: fd=100 wanted=4 got=4
30303164 001d
system/core/adb/sysdeps_win32.c::adb_close():adb_close: 100(lo-client:5037)
system/core/adb/adb_client.c::_adb_connect():_adb_connect: host:devices
system/core/adb/sysdeps_win32.c::socket_loopback_client():socket_loopback_client: port 5037 type tcp => fd 101
system/core/adb/transport.c::writex():writex: fd=101 len=4: 30303063 000c
system/core/adb/transport.c::writex():writex: fd=101 len=12: 686f73743a64657669636573 host:devices
system/core/adb/transport.c::readx():readx: fd=101 wanted=4
system/core/adb/transport.c::readx():readx: fd=101 wanted=4 got=4
4f4b4159 OKAY
system/core/adb/adb_client.c::_adb_connect():_adb_connect: return fd 101
system/core/adb/adb_client.c::adb_connect():adb_connect: return fd 101
system/core/adb/transport.c::readx():readx: fd=101 wanted=4
system/core/adb/transport.c::readx():readx: fd=101 wanted=4 got=4
30303030 0000
system/core/adb/transport.c::readx():readx: fd=101 wanted=0
system/core/adb/transport.c::readx():readx: fd=101 wanted=0 got=0
system/core/adb/sysdeps_win32.c::adb_close():adb_close: 101(lo-client:5037)
List of devices attached
***NOTHING SHOWN*****
我究竟做错了什么?
插入 Nexus 7 后,会持续显示“CONNECT AS / Media Device (MTP)”通知。在这种状态下,adb devices
不会显示 Nexus,或者毫无疑问是任何其他设备。不是很明显,但是如果您选择第二个选项“摄像头 (PTP)”,则设备可用于调试(课程是忽略摄像头,并专注于协议 PTP)。
这种配置是持久的,我猜测使用全新的设备它将作为 MTP 连接,除非另有说明。
感谢@Ciaran Gallagher Settings --> Storage --> Top Left Option (Computer USB Connection) tap--> choose MTP
除了将 USB 连接/存储模式设置为“相机 (PTP)”之外,我还必须启用开发者模式,该模式从 4.2 开始就被隐藏了。
转到“设置”菜单,然后向下滚动到“关于手机/平板电脑”。点击它。再次向下滚动到底部,您会看到“内部版本号”。点击它七 (7) 次。第三次点击后,您会看到一个有趣的对话框,说您距离成为开发人员还有四次点击。继续点击,你就有了开发者设置。现在在“设置”下有“开发者选项”。点击它。点击“USB 调试”以启用它。
来源:How to enable developer settings on Android 4.2
在 Windows 7/8 32bit/64bit 上修复/安装 Android USB 驱动程序:
将 Android 设备连接到计算机的 USB 端口。从桌面或 Windows 资源管理器中右键单击计算机,然后选择管理。在左侧窗格中选择设备。在右侧窗格中找到并展开其他设备。右键单击设备名称(Nexus 7 / Nexus 5 / Nexus 4)并选择更新驱动程序软件。这将启动硬件更新向导。选择浏览我的计算机以查找驱动程序软件,然后单击下一步。单击浏览并找到 USB 驱动程序文件夹。 (Google USB 驱动程序位于
如果它仍然不起作用,请尝试从 MTP 更改为 PTP。
https://i.stack.imgur.com/XZIir.png
我发现您也可以执行设备管理器 -> 更新驱动程序软件 -> 浏览我的计算机以查找驱动程序软件 -> 让我从计算机上的设备驱动程序列表中选择 -> Android 手机 -> [ADB 驱动程序版本 6 靠近顶部名单...对不起,我不记得确切的名字]
一旦我这样做了,它就连接了,我能够在 Windows 7 64 位上侧载 4.2 版。
我在 Windows 7 x64 上使用 Nexus 7 (4.2)。这里描述的其他方法都不适合我。该选项卡已处于 PTP 模式。最后,当我将以下行添加到
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&REV_9999&MI_01
要获取确切的硬件 ID(在我的情况下为 USB\VID_18D1&PID_4E44&REV_9999&MI_01),您可以转到计算机管理 -> 设备管理器 -> 详细信息选项卡 -> 从下拉列表中选择硬件 ID。
我有一个类似的问题并尝试了其他建议。
在 http://www.junefabrics.com/android/download.php 的下载中使用 PdaNet 驱动程序最终完成了这项工作,并允许我最终通过 ADB 进行连接。在从这里安装驱动程序之前,我无法识别我的 Nexus,以便在我的设备上加载新的 Android 4.2。
我正在使用 Nexus 7 运行 Windows 7 64 位。
我有类似的问题,我发现取消选中所有选项(MTP 和 PTP)允许设备从我的计算机获取 RSA 指纹,然后“adb 设备”工作。
请记住,在 Android 4.2+ 设备可以通过 ADB 连接之前,必须接受 RSA 指纹,这显然是出于安全原因。
PDANet 驱动程序是我在 Windows 7 x64 上成功连接到 Google Galaxy Nexus 4.2.1 的唯一解决方案,它拒绝/忽略来自最新 4.2 ADK(修订版 7)的官方 USB 驱动程序 - http://junefabrics.com/android/index.php
就我而言,我有两个问题:
我的电脑有一个以前的“Samsung Galaxy II”驱动程序并将其分配给我的 Nexus 7。我需要多次卸载它。最后我可以绑定正确的 Nexus 7 驱动程序。需要设置 PTP 选项。
我也有一个 Nexus 7 和 Windows 7 64 位,并且大约一个月前在这个线程和其他线程中磕磕绊绊让 ADB 工作。然后它停止工作。我记得之前发生的唯一一件奇怪的事情是 Windows 在我启动时安装了一些蓝牙驱动程序(我没有蓝牙设备)。
这次我折腾了一天。现在它又开始工作了!我做的最后一件事是使用设备管理器“禁用”设备并重新启动。
我安装了 HTC One 驱动程序,我认为这是无法正常工作的原因。然而,事实证明,原因是我禁用了 MTP/PTP。
我没有找到设置的位置,但后来我找到了How to Configure the USB on Your Nexus 7。
这让我很困惑,它位于“存储”选项卡中。 MTP 或 PTP 都适合我。
另一种选择是,如果您的 PC 上的 Windows 更新完全关闭。在这种情况下,即使您下载了 USB 驱动程序并尝试如上所述手动更新它,它也不起作用。在这种情况下,唯一的方法是启用 Windows 自动更新驱动程序。启用此功能后,请从设备管理器中删除不工作的驱动程序并通过 USB 电缆将平板电脑连接到 PC。驱动程序将由 Windows 自动下载和安装。这种方式适用于我的 Windows 7 PC。
我在 Win 7 64 位上,我看到大多数人在这里遇到同样的问题也在 64 位上。为了排除硬件和操作系统,我使用 VMware 在同一台 PC 上运行 Win 7 32 位。除了必须使用正确的 VID/PID 编辑 .inf 文件外,其他一切都在 Win 7 32 位上完美运行,这告诉我 PC 很好,Win 7 32 位也很好。
回到我的 Win 7 64 位,上面的建议都不适合我。但是我注意到一件事,ADB 安装在 Program Files (x86) 下,但驱动程序安装程序正在安装 64 位。 Win 7 64 位将 Nexus 7 识别为 Android 复合 ADB 接口,但 ADB 未检测到它。
那么某处是否有 ADB 64 位版本?如果我的安装在 Win 7 64 位上的 (x86) 下,这是否意味着我在某处搞砸了安装。
我的问题是否与安装了 64 位的 USB 驱动程序但 ADB 是 32 位有关?
我在属性中安装 Nexus 7 USB 驱动程序时注意到的另一个问题我只看到用于设备功能的 Android 复合 ADB 接口。在 Win 7 32 位属性下显示 3 个设备功能。
https://i.stack.imgur.com/1eKZY.png
看起来问题仍然是USB驱动程序。
完整清单:
在设备上启用调试 选择 USB 连接作为 PTP(相机) 从 http://developer.android.com/sdk/win-usb.html 安装驱动程序
在 PTP 之上似乎为我解决此问题的解决方案是在允许 USB 调试时未选择 Always allow from this computer
。每次连接设备时撤销授权并手动接受为我解决了这个问题。 (Settings -> Developer options -> Revoke USB debugging authorisations
)
对于那些使用 Nexus 5x 且在设备管理器中只能看到 Kedacom usb device
而无法让 adb 看到手机的人......诀窍是在 Kedacom 设备上 Update driver...
并将其更改为“Android ADB 接口/设备”
不定期副业成功案例分享
adb kill-server
、adb start-server
、adb devices
,但列表仍然为空。