Android 4.2.2中adb无法找到设备。

19
随着我Galaxy Nexus和Nexus 7更新到4.2.2,我找不到我的两个设备在adb下的位置。
我采取了以下步骤:
  • 更新到4.2.2
  • 通过SDK管理器更新ADT和SDK
  • 检查ADB版本,它是1.0.31
  • 多次重启电脑、平板电脑和手机
  • 当我运行adb devices时,什么也没有。我在Windows 8和Ubuntu 12.10上都有同样的问题,但在Ubuntu上它显示我的设备并显示为离线
    是否还有其他步骤我可以采取?

    2
    请明确一下,“启用USB调试”是否仍然被选中? - Sam
    你是否安装了Nexus设备的USB驱动程序或某种PC套件?例如,三星设备的Samsung Kies。 - Ariel Magbanua
    也许这会有所帮助。https://dev59.com/-2Up5IYBdhLWcg3wz54H - TronicZomB
    这些都在我的问题中说明了。我正在使用Nexus设备,因此除了SDK管理器中的驱动程序之外,没有其他驱动程序。当仍在4.2.1上时,一切都正常,但随着android/adt/adb的所有更新,我不知道哪一个出了问题。@TronicZomB,我甚至看不到Windows上的设备处于“离线”状态,在Ubuntu上,我也看不到弹出窗口。 - tolgap
    一些读者可能会发现有用的是被提醒USB调试必须启用,以及如何在没有开发者工具的情况下启用它们(至少在CyanogenMod上)。 - Skippy le Grand Gourou
    14个回答

    16

    来自adb docs

    当你将运行Android 4.2.2或更高版本的设备连接到计算机时,系统会显示一个对话框,询问是否接受一个RSA密钥,允许通过此计算机进行调试。这种安全机制保护用户设备,因为它确保USB调试和其他adb命令不能被执行,除非您能够解锁设备并确认对话框。这需要您在运行Android 4.2.2或更高版本的设备上进行调试时使用adb版本1.0.31(可在SDK平台工具r16.0.1及更高版本中获得)。

    所以,拔下电缆,等待一段时间后重新插入,并点击“ok”(出现在设备上的模态对话框)

    如果你点击“cancel”,设备将会通过adb devices显示为离线状态。


    不确定原因,但是我也遇到了同样的问题,大约2分钟后才成功打开模态RSA指纹对话框。第一次时我错过了它。这是一个Nexus 10。我的GNexus是VZ版本,所以...我无法获得4.2的好处。 - petey
    是的,我已经苦思冥想了三天了...但是我通过下面的答案解决了它。不知何故,我的驱动程序出了问题。 - tolgap
    如果您已经更新了udev规则,拔掉设备的电源线可能会有所帮助。 - mateor

    15

    我的驱动程序不知怎么就被卸载了?它显示为 Nexus 7,但旁边有一个感叹号。虽然它一直都能用...我安装了那个驱动程序,现在它可以用了。谢谢。 - tolgap
    1
    当我尝试让Windows 8识别我的Galaxy Nexus时,这对我很有效。 - tonylo
    1
    这已经是第二次发生了,我的设备正常工作,但在“adb devices”列表中没有出现。我重启了Windows 8机器和设备,最后发现在设备管理器下它带有感叹号并被禁用了。我只需右键单击它并启用它,就可以正常工作了。 - narangrajeev81

    12

    我想分享一下我的经验,我尝试了 -

    • 拔掉并重新插上设备
    • 安装正确的平台工具
    • 安装合适的Android桥接工具,打开和关闭USB调试等
    • 尝试使用WiFi连接,但它说已离线
    • 等等等等。

    对我来说解决问题的方法是将设备连接从“大容量存储”更改为"MTP"。要这样做,请在手机未连接电脑的情况下进入-

    "设置"->"存储"->单击菜单按钮->"USB计算机连接"->"媒体设备(MTP)"

    希望这有助于某些人避免疯狂!

    谢谢,

    Ash。


    这应该是顶级评论。我一直在苦苦挣扎着调试CyanogenMod,感觉自己快疯了,结果最终终于成功了。 - Chiguireitor
    一个变体解决了我的问题。我必须关闭MTP,然后它立即开始工作。 - D0SBoots

    2

    adb wait-for-device

    这个命令对我很有效。只需要拔掉你的USB设备,运行此命令,在等待期间将设备插入,然后它就会正常工作。 :)


    我做了几次,最终我的Nexus 7显示对话框并要求我允许USB调试,并且在Eclipse中它变成了在线状态... - RRTW

    2

    2
    这是我所做的(Galaxy S4 4.2.2):
    • 进入“设置”=>“关于本设备” => 多次点击“版本号”,即类似于“JDQ39.I9505XXBHYTGKDD”的东西(不是Android版本或其他任何内容); 在这里,您会发现Google或Samsung非常幽默,因为您必须多次点击才能看到一个吐司显示“您距离成为开发人员仅有几次点击之遥”; 大约点击10次后,您会看到一个吐司“您已经是一名开发人员”

    • 进入“开发选项”(在“更多”选项卡中(设置菜单的右侧选项卡)); 确保勾选“USB调试”。

    它就起作用了!Eclipse可以看到您的S4(或任何其他4.2.2设备)!

    这是如何操作的图形化描述:http://howto.cnet.com/8301-11310_39-57549207-285/restore-the-developer-options-menu-in-android-4.2/ - zpon

    1
    今天我遇到了这个问题,通过重启Tab2并将其插入电脑/eclipse来解决。

    0

    检查您是否在Ubuntu中安装了android-adb-tools。如果是,则adb工具可能已经过时。卸载并使用ADB插件下载的最新adb工具创建别名。要检查adb版本,请执行“adb version”命令,如果是1.0.29,则为旧版本,适用于Android 4.2.2的最新版本为1.0.31。

    在我意识到这一点之前,我做了很多事情。


    如果你看了我在问题中所采取的步骤:“检查了ADB版本,它是1.0.31”,那么我已经做过了;)。但我还没有卸载它然后创建别名。 - tolgap

    0

    我去开发者选项并勾选USB调试,问题得到了解决


    0

    您可能正在使用旧版本的adb.exe。请更新platform-tools。 您可能还需要设置新的adb.exe路径。


    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接