我已经做了很明显的事情 - USB驱动程序是从最新的Android SDK安装的,并且在平板电脑中打开了USB调试。
连接Nexus 7后,设备会在Windows Device Manager中显示为“Android Phone”/“Android Composite ADB Device”,其属性显示驱动程序版本6.0.0.0,因此正确的驱动程序已安装并正常工作。
这也证明该设备处于USB调试模式,因为如果它不在Windows中的“Portable Devices”/“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*****
我做错了什么?
答案 0 :(得分:267)
当插入Nexus 7时,会有一个持续通知,指示" CONNECT AS /媒体设备(MTP)"。在此状态adb devices
将不会显示Nexus,或毫无疑问会显示任何其他设备。不完全明显,但如果您选择第二个选项"相机(PTP)"该设备可用于调试(该课程忽略了相机,并专注于协议PTP)。
此配置是持久性的,我猜测使用全新的设备,它将作为MTP连接,直到另有说明为止。
感谢@Ciaran Gallagher
Settings --> Storage --> Top Left Option (Computer USB Connection) tap--> choose MTP
答案 1 :(得分:77)
查看博客文章 Nexus 7 Android development ,其中包含详细步骤。
答案 2 :(得分:74)
除了将USB连接/存储模式设置为“相机(PTP)”之外,我还必须启用自4.2以来一直隐藏的开发者模式。
答案 3 :(得分:68)
在 Windows 7/8 32位/ 64位上修复/安装Android USB驱动程序:
<sdk>\extras\google\usb_driver\
。)如果仍然无效,请尝试从 MTP 更改为 PTP 。
答案 4 :(得分:13)
我发现你也可以做设备管理器 - &gt;更新驱动程序软件 - &gt;浏览我的电脑以获取驱动程序软件 - &gt;让我从计算机上的设备驱动程序列表中选择 - &gt; Android手机 - &gt; [ADB驱动程序版本6在列表顶部附近...抱歉,我记不清具体名称]
一旦我这样做,就连接了,我能够在Windows 7 64位上加载版本4.2。
答案 5 :(得分:8)
我在Windows 7 x64上使用Nexus 7(4.2)。这里描述的其他方法都不适用于我。该选项卡已处于PTP模式。最后,当我将以下行添加到&lt; android-sdk&gt; \ extras \ google \ usb_driver下的'android_winusb.inf'并执行'更新驱动程序'时,我可以正常工作:
%CompositeAdbInterface% = USB_Install, USB\VID_18D1&PID_4E44&REV_9999&MI_01
要获得确切的硬件ID(在我的情况下为USB \ VID_18D1&amp; PID_4E44&amp; REV_9999&amp; MI_01),您可以转到计算机管理 - &gt; 设备管理器 - &gt; 详细信息标签 - &gt;从下拉列表中选择硬件ID。
答案 6 :(得分:7)
我有类似的问题,并尝试了其他建议。
从http://www.junefabrics.com/android/download.php下载中使用PdaNet驱动程序最终完成了这项工作,并允许我最终通过ADB连接。在从这里安装驱动程序之前,我无法识别我的Nexus,以便在我的设备上安装新的Android 4.2。
我使用Nexus 7运行Windows 7 64位。
答案 7 :(得分:5)
试试这个。如果未检测到您的设备,请使用PdaNet
。您可以从here下载。下载并安装在您的计算机上。连接手机。它会自动从Internet检测驱动程序。
答案 8 :(得分:5)
我有类似的问题,我发现取消选中所有选项(包括MTP和PTP)都允许设备从我的计算机上获取RSA指纹,然后“adb devices”工作。
请记住,在Android 4.2+设备可以通过ADB连接之前,需要接受RSA指纹,这显然是出于安全考虑。
答案 9 :(得分:1)
就我而言,我有两个问题:
我的电脑上有一个以前的“三星Galaxy II”驱动程序并将其分配给我的Nexus 7.我需要多次卸载它。最后,我可以绑定正确的Nexus 7驱动程序。
需要设置PTP选项。
答案 10 :(得分:1)
我安装了HTC One驱动程序,我认为这是不工作的原因。但事实证明,原因是我禁用了MTP / PTP。
我找不到设置的地方,但后来我找到了 How to Configure the USB on Your Nexus 7 。
这让我很困惑,它位于存储标签中。 MTP或PTP都适合我。
答案 11 :(得分:1)
我还有一台Nexus 7和Windows 7 64位,并且大约一个月前在这个主题和其他人中磕磕绊绊地让ADB工作。然后它停止了工作。我记得以前发生的唯一奇怪的事情是Windows在我启动时安装了一些蓝牙驱动程序(我没有蓝牙设备)。
这次我挣扎了一天。现在又恢复了!我做的最后一件事是使用设备管理器“禁用”设备并重新启动。
答案 12 :(得分:1)
PDANet驱动程序是我在Windows 7 x64上成功连接到Google Galaxy Nexus 4.2.1的唯一解决方案,它拒绝/忽略了最新的4.2 ADK(修订版7)中的官方USB驱动程序 - http://junefabrics.com/android/index.php
答案 13 :(得分:0)
另一个选择是如果您的PC上的Windows更新完全关闭。在这种情况下即使您下载USB驱动程序&amp;尝试如上所述手动更新它将无法正常工作。在这种情况下,唯一的方法是启用Windows自动更新驱动程序。启用此功能后,从设备管理器中删除不工作的驱动程序&amp;通过USB线将平板电脑连接到PC。驱动程序将自动下载&amp;由Windows安装。 这种方式适用于我的Windows 7 PC。
答案 14 :(得分:0)
我在64位Win 7上看到大多数人在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 Composite ADB接口,但ADB未检测到它。
那么某处是否有ADB 64位版本?如果我的安装在Win 7 64位下的(x86)下,是否意味着我搞砸了某处的安装。
我的问题是否与安装64位的USB驱动程序有关,但ADB是否为32位?
我在Nexus 7 USB驱动程序安装在属性中时注意到的另一个问题我只看到了用于设备功能的Android Composite ADB接口。 在Win 7下,32位属性显示3个设备功能。
看起来问题仍然是USB驱动程序。
答案 15 :(得分:0)
完整清单:
答案 16 :(得分:0)
在PTP之上似乎为我解决此问题的解决方案是在允许USB调试时不选择Always allow from this computer
。撤销授权并在每次设备连接时手动接受修复此问题。 (Settings -> Developer options -> Revoke USB debugging authorisations
)
答案 17 :(得分:0)
对于那些使用Nexus 5x并且只能在设备管理器中看到Kedacom usb device
并且无法获取adb才能看到手机的人......诀窍是在Kedacom设备上Update driver...
并将其更改为&#34; Android ADB界面/设备&#34;