为啥 adb 在设备字符串后返回离线?

Posted

技术标签:

【中文标题】为啥 adb 在设备字符串后返回离线?【英文标题】:Why does adb return offline after the device string?为什么 adb 在设备字符串后返回离线? 【发布时间】:2011-12-31 01:06:11 【问题描述】:

我使用“adb devices”来获得以下结果。只有一台设备通过 USB 连接到 PC,但我们得到 8 行结果。

谁能给出原因?

WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline
WH96TNE00361    offline

【问题讨论】:

请参考以下链接以获得答案。更快:***.com/a/17095525/727654 这些答案中的大多数是“升级 adb”和/或“重新初始化东西”的一些变体。为我解决了这个问题的是克里斯蒂安的下面。 ADB 已切换到 wifi 模式,因此无法通过 USB 工作。我敢打赌很多人都有这个问题。 【参考方案1】:

如果上述步骤均无效。通过wifi连接后我的设备仍然离线。我做了以下事情:

转到您的设备...

    进入设置。

    转到开发者选项。

    只允许在充电模式下进行 adb 调试。

    像往常一样重复这些步骤。即:

    一个。仅在充电模式下连接您的 USB。 湾。打开命令写: - 亚行 tcpip 4455 - 亚行连接 192.168.1.11:4455 湾。断开 USB。

现在一切都对我有用。

【讨论】:

【参考方案2】:

我在这里发布我的问题以防万一对其他人有帮助。 我的问题是我的同事连接到同一个设备,而我无法连接到同一个设备。

注意:Amazon Fire TV 通过 Wifi 连接时遇到了这个问题。

有两种解决方案:

很容易“断开”他的连接(对不起,伙计:)

Restart the device
adb kill-server
adb start-server
adb connect device-ip

有点困难,但两个客户端可以使用同一个设备(使用不同的 TCP 端口)

请看这个answer

【讨论】:

【参考方案3】:

检查您正在运行的 ADB 版本是否比所连接设备上的操作系统版本新。对我来说,更新 ADB 有助于让设备联机。

【讨论】:

【参考方案4】:

我所做的是多个不相关的软件包恰好安装了 adb.exe -- 特别是对我来说(在 Windoze 上),手机 OEM 驱动程序安装包“有用”也将 adb.exe 安装到 C:\ windows,并且这个目录出现在 %PATH% 早于我的 android SDK 的平台工具目录。不出所料,手机 OEM 驱动程序包中包含的 adb.exe 比更新的 android sdk 中的要旧得多。 所以 adb 对我来说工作得很好,直到有一天我为我的手机更新了 Windows 驱动程序。一旦我这样做了,绝对不会让我的手机状态从“离线”改变——但问题与驱动程序无关。只是驱动程序 package 已将不同的 adb.exe - 和一个更旧的 - 安装到具有更高优先级的目录中。 为了修复我的安装,我只是更改了 PATH 环境变量以使 sdk 的 adb.exe 具有优先权。 快速检查向我建议,“很多”不同的包都包含 adb.exe,因此请注意不要无意中将较旧的包插入到您的工具链中。

我一定是真的老了:我从不记得有这么愚蠢的问题要花这么长时间才能发现。

【讨论】:

【参考方案5】:

还要确保 adb 没有在您的进程中自动运行。如果它在那里,右键单击打开文件位置,找出启动它的原因,用火杀死它。从更新的 android sdk 平台工具运行更新的 adb。这是我的问题,希望对某人有所帮助。

【讨论】:

【参考方案6】:

在浪费了几个小时之后,我更新了我的adb 版本,现在adb devices 显示我的设备在线,我可以再次在其上运行该应用程序。

【讨论】:

【参考方案7】:

在将 adb 升级到 SDK 版本后,将设备设置为授权模式后,我使用 GT-N8010(三星平板电脑)使 adb 在 Android 4.4.2 上运行。

~/local/opt/Android/Sdk/platform-tools/adb
Android Debug Bridge version 1.0.32

虽然它无法使用:

adb version   
Android Debug Bridge version 1.0.31

在 Ubuntu LTS 版本中发货:

apt-cache show android-tools-adb  | grep Version
Version: 4.2.2+git20130218-3ubuntu23

这个链接可能会有所帮助

Can't connect Nexus 4 to adb: unauthorized

【讨论】:

【参考方案8】:

在客户的机器上安装了这个,结果发现他通过website 安装了一个过时的adb 版本,提供了adb​​ 和fastboot。有问题的客户端不想安装整个 SDK,因为感觉到膨胀 :S 。

因此,如果您看到 offline,请确保您已下载并使用最新的 adb。我最终通过电子邮件向他发送了 adb 可执行文件。

还值得检查您使用的 adb 是否在路径中是正确的。即在 Mac 上

$ which adb
/Users/me/dev/adt-bundle-mac-x86_64/sdk-macosx/platform-tools/adb 

【讨论】:

【参考方案9】:

尝试以下方法:

    拔下 USB 并重新插入。

    转到您设备的设置 -> 应用程序 -> 开发 并取消选中 USB 调试 模式,然后再次检查。

    在您的 PC 上重新启动 adb。 adb kill-server 然后 adb 启动服务器

    重新启动您的设备,然后重试。

【讨论】:

5.如果您的设备 >=4.2.2,请升级到最新的 SDK/adb 我解决了这个问题(在我的 Nexus 5 上),方法是转到通知区域,点击已连接的 USB 并取消选中“用作媒体”或其他内容。现在它在 adb 中正确显示。 在我的情况下,这仅仅是因为我的设备正在显示一个对话框“允许 RSA”,而我​​没有注意到:0。只允许“始终”,设备现在显示为“设备”而不是“离线” 在升级、尝试一切等之后,这对我有用。这是 scottastic 建议的,我将手机从 MTP 切换到 PTP(相机)设备,这带来了 RSA 提示。现在它作为 adb 连接。之后我什至可以将其切换回 MTP。 对我也不起作用。奇怪的是android studio检测设备没有问题,但我不能从命令行【参考方案10】:

我遇到了同样的问题,其他答案都没有。当您使用 wifi 模式(运行命令 'adb tcpip 5555')连接到设备时,它似乎经常发生。我找到了这个解决方案,它是一种解决方法,但确实有效。

    断开 USB 连接(如果您通过 wifi 连接,则关闭设备 wifi) 关闭eclipse/其他IDE 检查正在运行的程序中的 adb.exe(Windows 中的任务管理器)。如果它正在运行,则终止它。 重启你的安卓设备 设备重启后,通过 USB 连接并运行“adb devices”。这应该启动 adb 守护进程。您应该会再次看到您的设备在线。

这个过程有点长,但它是唯一一个每次都对我有用的过程。

【讨论】:

【参考方案11】:

要完成前面的答案,另一种可能的解决方案是更改插入电缆的 USB 插座。

我遇到了这个问题(关于使用 adb kill-server / start-server 的经典答案不起作用)并且它解决了。

实际上,我花了一些时间才发现这一点,因为 Windows 正确识别了我的第一个套接字中的设备。但不是亚行。由于 Windows 正在识别该设备,我没有真正需要测试其他 USB 物理插座。我应该有。

因此,您可以尝试将电缆插入计算机上直接可用的所有 USB 物理插座。它确实对我有用。有时 USB 插座不是由计算机以相同的方式管理的。

【讨论】:

这对我有用!谢谢!因为我想把这该死的东西扔出窗外。我必须将其插入红色/粉色 USB 插槽 (3.0) 切换 USB 端口为我解决了这个问题,而没有其他办法。谢谢! Windows 8 在这里,无论出于何种原因,这也解决了我的问题! 这是给我的。我在机箱上使用了前面板 USB。在第二个前面板端口上,我连接了一个方向盘,因此它无法正常工作。当我断开***时,它工作正常。哦,它还可以与我可用的其他 50 个 USB 端口一起使用,甚至包括键盘端口。我用的那个渣男,没有。【参考方案12】:

对于使用 Android 4.1.1 的我来说,只有重启设备才有效

【讨论】:

【参考方案13】:

运行 SDK Manager 并安装 Android SDK 工具和 Android SDK 平台工具更新。 ADB 必须更新到 4.2.x 的新版本

【讨论】:

就是这样。另外,请记住,有时您 [或其他人] 可能会将 adb 安装在不同的位置并在 /usr/bin 中创建符号链接。确保您运行的是正确的、更新的【参考方案14】:

从 Android 4.2.2 开始,您必须在您的设备上确认它正在连接到受信任的计算机。它适用于 adb 1.0.31 及更高版本。

【讨论】:

这很可能是我遇到的问题,因为它只是在我升级到 4.2.2 时才开始,但是,无论我做什么,我都无法出现任何要求我验证。 我升级到了最新的 SDK(我有 1.0.29 什么的,现在我有 1.0.31(这就是你说的 1.0.3 的意思吗?),它现在弹出了。跨度> @crdx 确保您启用了“设置->开发人员选项->USB”调试。然后将您的设备连接到主机,然后您的设备应该会显示一个弹出窗口;您只需要确认您信任此主机。 @Pointy 请看我上面对 crdx 的回答 ... 但adb version 仅报告 1.0.29;这很奇怪,因为我几天前才安装它...【参考方案15】:

在装有 Android 4.2.2 的 Galaxy Nexus 上,我最初遇到了同样的问题,“adb devices”显示设备但处于离线状态(USB 调试最初在我的设备上处于活动状态)。

这些是我采取的补救措施:

    禁用 USB 调试(设备未连接到 PC) 重新启用USB调试 现在连接到您的 PC,现在设备(不是 PC)上的弹出窗口会要求您对 PC 进行身份验证,就是这样...

adb devices 现在同时列出设备 id 和不脱机。

【讨论】:

这很可能是我遇到的问题,因为它只是在我升级到 4.2.2 时才开始,但是,无论我做什么,我都无法出现任何要求我验证。 我升级到最新的SDK,现在弹出了。【参考方案16】:

您也可以尝试下载最新版本的adbhttp://developer.android.com/tools/help/adb.html

【讨论】:

如果您刚刚升级到Android 4.2.2,这是解决方案;他们添加了一个东西,您需要先将计算机列入白名单,然后才能调试手机,而旧的 SDK 不支持它 对我来说就是这样......我路径中的 adb 来自 4.2.1,而不是我的构建系统中的 4.2.2。【参考方案17】:

重启设备。这总是在 Mac OS 上修复它,而 adb kill-server 没有。

【讨论】:

【参考方案18】:

我的一部手机也遇到了类似的问题。 我无法在我的任何计算机上连接和使用 USB 调试。 最后,我不得不手动重启手机上的usb调试[使用开发者菜单这样做是不够的]。

您只需在手机上运行一个命令 [我使用Terminal Emulator 应用程序完成了它]:

adb usb

就是这样。

希望这对将来的人有所帮助。

【讨论】:

这是我的问题。我通过键入“adb tcpip 5555”切换到通过 wifi 使用 ADB,然后在 wifi 关闭时尝试使用 ADB。如果您的设备上没有安装终端,您最终可能会陷入困境!疯了,默认情况下一个都没有。 hmmm 我刚刚安装了终端模拟器并尝试使用该命令,但它说找不到该命令。您是如何设法在设备本身上获取 adb 命令的? @YasharBahman 嗯,刚刚输入了命令,我什么都不用做。在 Galaxy S2 和 S5 上测试。【参考方案19】:
    确保设备已设置为 USB 调试 让 adb 客户端运行(例如,通过“adb usb”或 adb start-server” 让设备通过 USB 连接!!! 然后重新启动设备。

这总是让我的摩托罗拉 MB525 再次“在线”,在 adb 抱怨它会“离线”之后。顺便说一句,我正在使用 OSX。

【讨论】:

【参考方案20】:
 adb kill-server
 adb start-server

解决了我的问题

【讨论】:

我曾经重新插入usb线,这个解决方案解放了我的双手。

以上是关于为啥 adb 在设备字符串后返回离线?的主要内容,如果未能解决你的问题,请参考以下文章

Android 4.2.2 - adb 离线,即使在 SDK 升级后

装好了ADB,为啥还是提示waiting for device

Android 模拟器只显示黑屏和 adb 设备显示“设备离线”

adb devices 找不到设备

adb 常用命令记录

如何通过adb命令获取手机型号与设备信息