通过Windows 7 x64上的"adb设备"无法通过USB看到Nexus 7

Mik*_*fey 180 android adb sideloading

我已经做了很明显的事情 - USB驱动程序是从最新的Android SDK安装的,并且在平板电脑中打开了USB调试.

当连接Nexus 7时,设备在Windows 设备管理器中显示为"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*****
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Mik*_*fey 268

当插入Nexus 7时,会有持续通知,指示" CONNECT AS/Media Device(MTP) ".在这种状态下adb devices不会显示Nexus,或者无疑是其他任何设备.不是很明显,但如果您选择第二个选项"Camera(PTP)",则该设备可用于调试(该课程将忽略相机,并专注于协议PTP).

这种配置是持久性的,我猜测使用全新的设备,它将作为MTP连接,直到另有说明.

感谢@Ciaran Gallagher Settings --> Storage --> Top Left Option (Computer USB Connection) tap--> choose MTP

  • 对于其他想知道如何切换到摄像头模式的人,请转到"设置",然后在"设备"部分中,单击"存储",然后单击标题窗格右侧的椭圆,然后单击"USB"计算机连接',然后在'连接为'部分,检查'相机(PTP)'选项,然后它将工作. (38认同)
  • 如何在选择错误模式后切换到相机(PTP)模式? (6认同)
  • 非常感谢.再过几分钟,我的nexus7会飞出窗外跟着我的WindowsPC. (5认同)
  • 我必须同意 - 经过数小时的搜索,更换驱动程序等等 - 只有上面(更改为PTP)才能让我的Nexus 7显示出来.现在开始添加对平板电脑应用程序的支持 - 非常感谢! (3认同)

Zac*_*ood 77

查看博客文章Nexus 7 Android开发,其中包含详细步骤.

  • 有很多东西需要检查/出错,这似乎涵盖了很多 - 为我修复它.即插即用,呃? (2认同)
  • 是的,我们的软件开发人员类型必须忍受很多废话.否则没有人会认为我们很酷. (2认同)

小智 74

除了将USB连接/存储模式设置为"Camera(PTP)"之外,我还必须启用开发人员模式,该模式自4.2以来一直被隐藏.

  1. 转到"设置"菜单,然后向下滚动到"关于手机/平板电脑".点按它.
  2. 再次向下滚动到底部,您会看到"内部版本号".
  3. 点击七(7)次.在第三次点击之后,您会看到一个有趣的对话框,表示您距离开发人员只有四步之遥.继续点击,你有开发人员设置.
  4. 现在在"设置"下有"开发人员选项".点按它.
  5. 点击"USB debugging"启用它.

来源:如何在Android 4.2上启用开发人员设置

  • 这个答案应该被投票,因为这是我解决这个问题的关键 (4认同)

Dan*_*npe 68

Windows 7/8 32bit/64bit上修复/安装Android USB驱动程序:

  1. 将Android设备连接到计算机的USB端口.
  2. 在桌面或Windows资源管理器中右键单击"计算机",然后选择" 管理".
  3. 在左窗格中选择"设备".
  4. 在右侧窗格中找到并展开"其他设备".
  5. 右键单击设备名称(Nexus 7/Nexus 5/Nexus 4),然后选择更新驱动程序软件.这将启动硬件更新向导.
  6. 选择浏览计算机以查找驱动程序软件,然后单
  7. 单击" 浏览"并找到USB驱动程序文件夹.(Google USB驱动程序位于<sdk>\extras\google\usb_driver\.)
  8. 单击下一步以安装驱动程序.

如果仍然无效,请尝试从MTP更改为PTP.

MTP  - > PTP

  • 非常感谢,但必须先通过SDK Manager下载驱动程序 (5认同)

小智 13

我发现你也可以做设备管理器 - >更新驱动程序软件 - >浏览我的电脑驱动程序软件 - >让我从我的电脑上的设备驱动程序列表中选择 - > Android手机 - > [ADB驱动程序版本6附近的顶部列表...对不起,我记不起确切的名字]

一旦我这样做,它连接,我能够在Windows 7 64位上侧载4.2版本.


小智 8

我在Windows 7 x64上使用Nexus 7(4.2).这里描述的其他方法都不适用于我.该选项卡已处于PTP模式.最后,当我将以下行添加到<android-sdk>\extras\google\usb_driver下的'android_winusb.inf'并执行'更新驱动程序'时,我可以正常工作:

%CompositeAdbInterface%     = USB_Install, USB\VID_18D1&PID_4E44&REV_9999&MI_01
Run Code Online (Sandbox Code Playgroud)

要获得确切的硬件ID(在我的情况下为USB\VID_18D1&PID_4E44&REV_9999&MI_01),您可以从下拉列表中进入计算机管理 - > 设备管理器 - > 详细信息选项卡 - >选择硬件ID.


小智 7

我有类似的问题,并尝试了其他建议.

http://www.junefabrics.com/android/download.php下载中使用PdaNet驱动程序最终完成了这项工作,并允许我最终通过ADB连接.在从这里安装驱动程序之前,我无法识别我的Nexus,以便在我的设备上安装新的Android 4.2.

我使用Nexus 7运行Windows 7 64位.


Aks*_*hay 5

试试这个.如果未检测到您的设备,请使用PdaNet.你可以从这里下载.下载并安装在您的计算机上.连接手机.它会自动从Internet检测驱动程序.


小智 5

我有类似的问题,我发现取消选中所有选项(包括MTP和PTP)都允许设备从我的计算机上获取RSA指纹,之后"adb devices"工作.

请记住,在Android 4.2+设备可以通过ADB连接之前,需要接受RSA指纹,这显然是出于安全考虑.

  • 取消选中BOTH MTP和PTP工作,设备在运行命令后显示:adb devices.然后设备提示允许RSA指纹.太好了,谢谢! (2认同)