我已经做了很明显的事情 - 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*****
我究竟做错了什么?
18 回答
我发现你也可以做设备管理器 - >更新驱动程序软件 - >浏览我的电脑驱动程序软件 - >让我从我的电脑上的设备驱动程序列表中选择 - > Android手机 - > [ADB驱动程序版本6附近的顶部列表...对不起,我记不起确切的名字]
一旦我这样做,它连接,我能够在Windows 7 64位上侧载4.2版本 .
我在Windows 7 x64上使用Nexus 7(4.2) . 这里描述的其他方法都不适用于我 . 该选项卡已处于PTP模式 . 最后,当我将以下行添加到<android-sdk> \ extras \ google \ usb_driver下的'android_winusb.inf'并执行'更新驱动程序'时,我可以正常工作:
要获得确切的硬件ID(在我的情况下为USB \ VID_18D1&PID_4E44&REV_9999&MI_01),您可以从下拉列表中进入计算机管理 - >设备管理器 - >详细信息选项卡 - >选择硬件ID .
当插入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
查看博客文章Nexus 7 Android development,其中包含详细步骤 .
除了将USB连接/存储模式设置为“Camera(PTP)”之外,我还必须启用开发人员模式,该模式自4.2以来一直被隐藏 .
进入“设置”菜单,然后向下滚动到'About phone/tablet' . 点按它 .
再次向下滚动到底部,您会看到'Build number' .
点击七(7)次 . 在第三次点击之后,您将成为开发人员的四分之一 . 继续点击,你有开发人员设置 .
现在在设置下有's '开发人员选项' . 点按它 .
点击'USB debugging'以启用它 .
资料来源:How to enable developer settings on Android 4.2
要在 Windows 7/8 32bit/64bit 上修复/安装Android USB驱动程序:
将Android设备连接到计算机的USB端口 .
在桌面或Windows资源管理器中右键单击“计算机”,然后选择 Manage .
在左窗格中选择“设备” .
在右窗格中找到并展开“其他设备” .
右键单击设备名称( Nexus 7 / Nexus 5 / Nexus 4 )并选择 Update Driver Software . 这将启动硬件更新向导 .
选择 Browse my computer for driver software 并单击“下一步” .
单击 Browse 并找到USB驱动程序文件夹 . (Google USB驱动程序位于
<sdk>\extras\google\usb_driver\
. )单击 Next 以安装驱动程序 .
如果仍然无效,请尝试从 MTP 更改为 PTP .
我有类似的问题,并尝试了其他建议 .
从http://www.junefabrics.com/android/download.php下载中使用PdaNet驱动程序最终完成了这项工作,并允许我最终通过ADB连接 . 在从这里安装驱动程序之前,我无法识别我的Nexus,以便在我的设备上安装新的Android 4.2 .
我用我的Nexus 7运行Windows 7 64位 .
我有类似的问题,我发现取消选中所有选项(包括MTP和PTP)都允许设备从我的计算机上获取RSA指纹,之后“adb devices”工作 .
请记住,在Android 4.2设备可以通过ADB连接之前,需要接受RSA指纹,这显然是出于安全考虑 .
试试这个 . 如果未检测到您的设备,请使用
PdaNet
. 你可以从here下载它 . 下载并安装在您的计算机上 . 连接手机 . 它会自动从Internet检测驱动程序 .PDANet驱动程序是我在Windows 7 x64上成功连接到Google Galaxy Nexus 4.2.1的唯一解决方案,它拒绝/忽略了最新的4.2 ADK(修订版7)中的官方USB驱动程序 - http://junefabrics.com/android/index.php
在我的情况下,我有两个问题:
我的电脑有一个以前的“三星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 Composite ADB接口,但ADB未检测到它 .
那么在某个地方有ADB 64位版本吗?如果我的安装在Win 7 64位下的(x86)下,是否意味着我搞砸了某处的安装 .
我的问题是否与64位安装的USB驱动程序有关,但ADB是32位?
在 properties 中安装Nexus 7 USB驱动程序时我注意到的另一个问题我只看到Android Composite ADB Interface for device functions . 在Win 7下,32位属性显示3个设备功能 .
看起来问题仍然是USB驱动程序 .
完整清单:
Enable debugging到设备上
选择USB连接作为PTP(相机)
Install the driver 来自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 interface/device"