Android ADB设备离线,无法发出命令

Android ADB device offline, can't issue commands

我无法通过命令行或在Eclipse中使用ADB连接到我的设备。

运行命令

1
adb devices

返回设备名称,但它表示它处于脱机状态。

我尝试过的事情。

  • 切换Android调试模式
  • 重新安装了Google USB驱动程序
  • 将操作系统恢复到以前工作的备份(CyanogenMod)
  • 交换USB线
  • 多次重启电话/电脑
  • 更新了Android SDK
  • 我真的不知道发生了什么。 你认为我还能尝试的任何其他事情,我都是耳朵。

    要明确的是,如果您遇到同样的问题,问题可能是过时的SDK。 从4.2.2开始,有一项安全功能要求您确认连接设备的RSA指纹。 打开SDK管理器并更新工具! 然后重启。


    在我的Nexus 7和Galaxy Nexus更新到Android 4.2.2之后,我今天遇到了同样的问题。

    解决这个问题的方法是将SDK平台工具升级到r16.0.1。对我来说,这个版本没有显示在我的SDK Manager中,所以我直接从http://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip中删除了它。

    然后,您需要重命名platform-tools目录并将其解压缩到android-sdk-windows/platform-tools。使用SDK Manager,我之前也更新过最新的sdk-tools。

    如果你的整个Eclipse和ADT都很古老,你可能也需要更新它们,但我不需要。

    注意:您可能需要运行SDK Manager两次(一次更新),然后才能看到最新的软件包。


    运行adb kill-server后尝试运行adb devices。之后出现安全问题。为我工作。


    当您使用Wi-Fi模式连接到设备时(例如在Android Studio中或在控制台中通过运行adb tcpip 5555),它似乎也经常发生。

    修理:

  • 如果您通过Wi-Fi连接,请断开USB连接 - 或关闭设备的Wi-Fi。
  • 关闭Android Studio / Eclipse /其他IDE。
  • 运行adb kill-server以确保adb未运行。
  • 重启您的Android设备。
  • 设备重启后,通过USB连接并运行adb devices。这应该启动ADB守护程序。您的设备现在应该再次在线。

  • 我在Nexus  7运行4.2.2 OTA更新时遇到了同样的问题。我几乎可以肯定,在更新后我通过USB和Wi-Fi进行了ADB连接,直到它停止工作。要修复,我使用以下方法更新了我的SDK:

    1
    android update sdk --no-ui

    现在我的开发工具是:

    • SDK rev 16.0.2
    • SDK工具rev 21.1
    • SDK API 17,rev 2


    对于想知道4.2.2的人,手机上会出现一个安全问题,要求通过PC进行RSA验证。确保您的工具已更新并通过验证相关设备上的安全问题来允许PC访问。这为我修好了。

    和往常一样,验证您是否在开发人员选项中启用了调试;)


    我不能强调切换USB端口是关键。前面板USB端口通常可能有缺陷。


    多个adb.exe文件?

    从C:/ Windows /删除OLD adb.exe的副本时,我的问题解决了。
    我不知道adb.exe的副本是如何进入C: Windows 的?

    当我从android-sdk / platform-tools /启动adb.exe时,检测没问题。


    我遇到了这个问题,其他答案都没有帮助。在更新SDK并安装4.2.2的API之后,必要的是运行:

    1
    android update adb

    我遇到的另一个问题是我试图通过Wi-Fi连接ADB,这是我唯一的选择,因为我的Mac上的USB端口非常精巧。不幸的是,通过Wi-Fi的ADB没有显示4.2.2中的安全问题,所以你需要找到一条USB线,它可以工作并通过USB连接至少一次以接受安全问题,但是在你这样做之后,您可以通过Wi-Fi连接。


    尝试关闭usb调试一次然后启用它agin然后将你的设备连接到system:link


    如果您的设备通常通过USB连接,但突然停止工作,尤其是在USB电缆断开连接并重新连接后,请尝试以下非侵入性步骤,然后再执行其他答案中提到的一些更激烈的事情:

    1
    2
    3
    adb kill-server
    adb start-server
    adb devices

    如果您的设备旁边列有"设备",那么您将重新开始营业。

    如果您的设备旁边列出了"离线",请尝试重新启动设备。设备上的ADB守护程序偶尔会挂起。当我在LogCat运行时断开电缆并从通过Wi-Fi或以太网连接切换回来后,我更加注意到了这一点。

    如果未列出您的设备,则应尝试其他答案中的解决方案,首先尝试使用其他USB电缆和端口。那些便宜的电缆可能会变坏。


    更新SDK工具后,请务必使用platform-tools文件夹中的adb

    在我意识到我使用的是在/usr/bin中复制的过时版本的ADB后,我终于完成了这项工作。


    有时这可能是因为adb服务器错误(我认为)。它总是说

    1
    "device-name is offline" from adb devices command.

    只需杀死服务器然后重新开始它对我有用。

    1
    2
    "adb kill-server"
    "adb start-server"

    我使用adb connect 而非其他解决方案都有效,因为我的问题出在另一边。在设备上我需要并重新启动它start adbd。设备现在再次"在线"。


    对我来说没什么用。我花了大约12个小时不断在互联网上搜索,并尝试解决其他人有类似问题的解决方案。

    最后,我最终只是在局域网上做了ADB的事情。设置就在USB调试设置旁边,在ADB中可以通过"adb connect [IPADDRESS]:[PORT]"激活。我手机上的端口是5555。

    我希望这有助于某人重新开始工作而不必处理不断的弊端。


    我尝试了dturvene和所有其他解决方案,但他们没有工作。我还需要一步。

    运行这些命令

  • adb kill-server
  • android update sdk --no-ui
  • adb start-server
  • 要验证它是否有效,请在命令之前和之后运行"adb version"并确保它是最新的。 adb kill-server命令的原因是它很可能正在运行,并且在运行时无法更新,因此您必须先将其终止。


    这种方法对我有用:

  • adb kill-server
  • 在设备管理器中禁用脱机设备(参见下图)
  • 在"设备管理器"中启用设备
  • adb start-server
  • 设备管理器,"查看"菜单,"按连接设备":

    enter image description here


    我最初遇到了同样的问题(从GitHub下载了ADB / fastboot),但我最终得到了它的工作。什么对我有用:

    • Android SDK。亚行版本:1.0.31
    • 使用前置USB端口(MacBook Pro 15")
    • 启用开发选项和USB调试后重启手机(通过7倍点击设置>关于手机>构建)。
    • 如果没有列出设备,请杀死adb服务器(adb kill-server)
    • 调试图标应该在手机上可见。
    • 务必解锁锁定屏幕以检查RSA指纹确认对话框。

    安装了最新的android sdk。
    更改了设备的USB端口。
    改为MTP - >仅限充电 - > MTP。
    有效。


    另一种可能是ADB连接不稳定的人,如果他们在Mac上并安装了Android文件传输:我发现文件传输干扰了我的ADB连接,导致它间歇性地停止工作。

    杀死寻找与Mac连接的兼容设备的Android File Transfer Agent.app进程(例如,Nexus  7)可以解决我的问题。


    由于没有人给出我的情况答案:您可能无法访问?/ .android / adbkey文件。如果你最初使用sudo启动adb,它将生成一个公钥对,将其写入?/ .android / adbkey.pub和?/ android / adbkey。当然,私钥是chmod 600 - 只能在主目录中以root身份读取。随后以普通用户身份启动adb将无法访问私钥文件,而私钥文件又将以"设备脱机"静默失败。


    在Mac上为我解决的问题是将adb更新到最新版本(1.0.32)。现在我可以再次在线看到我的设备


    我想到的最好方法是禁用然后从设备管理器启用设备并运行adb devices命令。

  • 转到"开始"选项卡,然后右键单击"计算机"
  • 从下拉菜单中,单击"管理"
  • 在计算机管理屏幕中,单击"设备管理器"
  • 在右侧窗格中,展开便携式设备以查找您的设备
  • 右键单击您的设备名称,然后单击下拉菜单中的禁用
  • 禁用后,重复步骤5,但启用它。
  • 该设备将重新联机。它更快。


    将设备报告为脱机的原因是adb无法连接到该设备。来自开发环境的Adb可执行文件创建与受控设备的连接(套接字)。设备有一个侦听此通信的服务(守护程序)。该守护进程称为adbd(如adbdaemon中所示)。
    实际上,当一个设备在设备上启用adb时,会启动此守护程序,因此可以使用该设备建立通信。

    当adb将设备报告为脱机时,因为守护程序不再运行或处于不接受连接的状态。如果网络在活动(网络)连接上发生故障,通常会发生这种情况。

    我可以解决这个问题的唯一方法是重启设备。
    可以通过许多其他方式到达以修复脱机状态,但重新启动设备始终有效。


    我遇到了同样的问题。首先通过USB连接您的手机,然后确保检查您的手机IP设置>>关于手机>>状态运行以下命令。

    1
    2
    3
    4
    5
    6
    7
    <wyn>
    adb kill-server
    adb start-server
    adb tcpip 5555 //it resets port so put port you want to connect
    adb connect 192.168.1.30:5555 //ip:port of your mobile to connect
    adb devices //you will be connected over wifi
    </wyn>


    如果您之前已经授权了PC的RSA指纹,并尝试了adb kill-server等没有运气,那么您的问题可能就是您在锁定时尝试连接它。尝试按下屏幕上的按钮并输入您的图案 - 这为我修复了它。


    重启设备。我尝试了这里列出的所有内容,以使我的HTC手机(运行Android 4.0.3)正常工作,但adb devices一直说它处于离线状态。重新启动手机后,它终于在线了。这里的一些其他建议可能有助于手机被识别,但在你尝试它们的过程中做一些重启肯定不会受到伤害。


    这只是因为您的计算机没有合适的驱动程序。解决这个问题:

  • 下载并解压Android SDK

  • 转到设备管理器(右键单击计算机 - >属性 - >设备管理器

  • 在右侧窗格中展开便携式设备以查找您的设备

  • 右键单击设备名称,然后单击"更新驱动程序软件"

  • 浏览我的电脑以获取驱动软件

  • 在步骤1中浏览到您的Android SDK文件夹。

  • 接下来你就完成了


  • 我多次更新,直到我再也无法更新,但我的屏幕上没有提示;我只是让设备离线。

    我的问题是我从另一个目录运行ADB命令到实际更新的内容。

    ADB exe的正确更新目录是:

    1
    C:\Program Files (x86)\Android\android-sdk\platform-tools\

    尝试重新启动adb服务器,如下所示:

    1
    2
    3
    adb kill-server

    adb start-server

    我也遇到了和你一样的问题。并重新启动adb服务器将解决此问题。


    为我工作:在开始工作,一段时间后离线。
    我做了以下事情:
    adb kill-server
    adb start-server
    再次使用usb将手机插入PC
    adb devices
    提供空列表的输出。
    adb tcpip 5555adb connect
    然后它再次上线。


    迟到但我找到了最简单的方法
    只需转到DDMS并按照图像所示进行操作......

    enter image description here


    我很惊讶地发现我的解决方案没有列在这里。

    对我来说,我有LG G3。必须使用LG的驱动程序连接手机。我去了

    设备管理器>卸载MTP驱动程序

    并立刻adb在没有1秒的情况下工作。


    尝试

    1
    adb usb

    我将我的连接方法更改为tcpip,然后我想如果我杀了服务器并启动它,它将重置连接方法但它不会

    这就是为什么以前的答案都不适用于我的情况


    在尝试了两次之后,我将手机软件回滚到一个稳定的版本,它终于奏效了。我正在运行Cyanogen nightlies。无论如何,这个帖子中发布的内容应该可以帮助遇到此问题的任何人。


    我也遇到了这个问题。我在Android SDK Manager中更新了所有内容,使用设备管理器卸载了我的设备,现在它可以正常工作。我沿途发布了一些"kill-server"和"start-server"......


    在Linux中:删除目录~/.android并重新启动ADB。


    对我来说,事实证明我有两个不同的SDK安装。当我启动Android SDK Manager并从Eclipse更新工具时,SDK路径指向一个位置,但命令行上使用的PATH环境变量指向另一个位置,该位置具有较旧版本的SDK,它始终显示4.2.2设备离线。


    这很可能是由于过时的adb过程造成的。
    这可能是由于蹩脚的开发人员打包adb,dll并将它们安装在Windows的根目录中。例如C: Windows adb.exe

    打开任务管理器杀死adb.exe,找到最有可能在root: Windows中的adb.exe并将其删除。然后使用最新的SDK


    禁用防病毒软件,重新连接usb并检查adb.exe是否未移至quarentine。


    我使用过ADB版本1.0.29,它可以连接到我的LG-F160K(JB 4.1.2)和Nexus&nbsp; 7(Android 4.2.2(Jelly Bean))。 LG-F160K与ADB 1.0.29配合使用,但Nexus 7的设备状态始终处于"离线"状态。

    我已经从谷歌Android网站下载了adt-bundle-linux-x86-20130219.zip,现在我可以连接到Nexus&nbsp; 7。我目前正在使用ADB 1.0.31版。

    只需下载最新的SDK或更新您的ADB实用程序。


    在我的情况下,我遇到了第一代华硕Nexus 7的这个问题。
    我已将日志记录缓冲区大小从256K增加到4M。只要我将其恢复为默认值(设置>开发人员设置>记录器缓冲区大小),拔下插头并重新插入平板电脑,它就能完美运行。


    对我来说,USB电缆没有完全插入插槽。虽然它显示我的Nexus 5充电。


    这些答案都不适用于我,也尝试过Wireless。我注意到adb.exe一直在我的系统进程中运行。右键单击它们,发现adb是从已安装的应用程序自动运行的(在我的情况下是Droid Explorer)。一旦我卸载了自动启动ADB的应用程序,我就可以杀死该进程并看到adb不再独立运行。从平台工具中获取更新的adb并且好好去!希望这有助于某人。


    没有其他答案对我有用。我刚刚在我的Galaxy S&nbsp; III上升级到了CyanogenMod 10.1(Android 4.2.2)。对我来说有用的是在开发人员选项中启用调试(启用,在"关于手机"中点击内部版本号七次),然后通过USB插入。然后我接受了出现的提示。


    只是分享我的条件:

    在我的LAN中,所有的andorid板都具有相同的MAC地址默认值。
    因此它将通过DHCP获得相同的IP,因为它具有相同的MAC地址。

    在局域网中,有多个具有相同IP的android板。
    并且adb可以连接到电路板(其中一个),并且可以打开电路板的外壳(其中一个),但是当将文件推送到电路板或其他操作时,"设备离线"。

    解:
    重写MAC地址,获取不同的IP。


    我需要杀死多个adb进程(adb kill-server&amp; adb start-server仍然留下一个挥之不去的进程。)

    $ ps aux | grep adb

    $ killall adb


    不是一个真正的答案,但更多的贡献显然是CM的问题。
    我有一台运行cm-11-20140309非官方BR1-ace(稳定版)的HTC Inspire HD。我可以在更新之前使用adb,但我从未安装过SDK,因为我没有必要。我已经尝试了以上所有以及更多。

    起初我以为我的问题是MTP驱动程序,但事实并非如此。在安装和更新SDK以包含4.4.2之后,HTC MTP设备驱动程序在通过USB连接时安装正常,但是使用新sdk安装位置的adb仍然在手机上的mtp和ptp模式下都显示设备处于离线状态和之。当我禁用USB调试手机自动重启时,我收到错误:

    "不幸的是,进程android.process.media已停止"

    新的CM在开发人员选项下有一个选项,可以通过WIFI进行调试,所以我也试过了,它只是说无法连接到IP地址和端口。像其他海报一样,我可以ping IP地址。

    我还检查了为ADB和应用程序启用root访问权限的选项,因为它只设置为APPS,当我使用adb设备时手机仍显示为脱机,有时它会抛出上面显示的相同错误。

    编辑:

    现在,我的手机只是强制重启,我重新调试,插入并运行adb设备,最后我被电话提示RSA密钥。由于某种原因,我之前没有提示,现在手机正在连接。因此,问题可能是需要在重新启动后将root访问权限从应用程序切换到应用程序和adb。

    这就是它离线显示的原因:http://playingwithsid.blogspot.com/2013/05/android-device-offline-fixing-adb.html


    只需从工具 - > Android启用/禁用ADB集成。这对我有用。我正在使用Android Studio测试版。


    在我的三星Galaxy S&nbsp; III上最新的CyanogenMod夜间更新(2013年8月12日)之后,我才开始面对同样的问题。

    我使用了最顶层答案中建议的ADB二进制文件(由w.allison编辑的hack_on),我的手机上有一个提示,要求允许访问我的PC(其RSA密钥)!!现在工作正常。

    下载链接(仅限ADB,Fastboot和相关二进制文件):https://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip


    这是一个蹩脚的案例,但以防万一...我有一台带有电源/ USB集线器的mac笔记本电脑,但它只有几个usb端口,所以我挂了另一个有源的usb集线器。似乎/似乎工作得相当好,但由于某种原因我的Android设备不会保持连接。插上它,它显示'设备',但尝试通过adb做任何事情并得到一个错误,状态变为"离线"。开车送我疯了。然后我决定尝试直接插入Android设备到第一个集线器......立即工作并坚定地工作。我曾经使用过两个集线器设置一段时间了,但所有突然之间它都停止了工作。希望它能帮助别人!


    我遇到了同样的问题,同时尝试在Ubuntu上安装CyxygenMod在Galaxy&nbsp; S&nbsp; III上。最后,我只是将SD卡直接连接到PC,将ZIP文件复制到外部SD卡。然后我将卡移回手机,当我重新启动手机时,我可以从SD卡安装CyanogenMod。


    试了几个小时。让它工作的事情是运行android studio而没有启动应用程序。您仍然可以使用chrome来远程调试设备。


    如果以上任何提示无效,请尝试以下步骤解锁OEM:

  • 打开命令提示符并设置平台工具路径。

  • 输入"adb reboot bootloader"。

  • 然后输入"fastboot oem unlock"。

  • 在一些设备上,它将花费更多的时间。请耐心等到@ 15分钟。

  • 重启设备