Android ADB设备离线,不能发出命令

我不能再通过命令行或在Eclipse中使用亚洲开发银行连接到我的设备。

执行命令

adb devices

返回设备名称,但显示为脱机状态。

我尝试过的事情。

  1. 切换Android调试模式
  2. 重新安装谷歌USB驱动
  3. 将操作系统恢复到以前工作的备份(CyanogenMod)
  4. 换掉USB数据线
  5. 多次重启电话/电脑
  6. 更新Android SDK

我真的不知道发生了什么。你觉得我还能试什么,我洗耳恭听。

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

847220 次浏览

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

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

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

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

注意:您可能需要运行SDK管理器两次(一次更新自己),才能看到最新的包。

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

我在运行4.2.2 OTA更新的nexus7上遇到了同样的问题。我几乎可以肯定我在更新后通过USB和Wi-Fi连接了ADB,直到它停止工作。为了修复,我更新了我的SDK使用:

android update sdk --no-ui

现在我的开发工具是:

  • SDK版本16.0.2
  • SDK工具版本21.1
  • SDK API 17,版本2

我也遇到过这个问题。我更新了Android SDK管理器中的所有内容,使用设备管理器卸载了我的设备,现在它可以正常工作了。一路上我发出了一些“kill-server”和“start-server”。

对于任何想知道4.2.2的人来说,有一个安全问题出现在电话上,要求与PC进行RSA验证。确保您的工具已更新,并通过验证有关设备上的安全问题来允许PC访问。这为我解决了问题。

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

只需关闭服务器adb kill-server

对我来说,我有两个不同的SDK安装。当我启动Android SDK管理器并从Eclipse更新工具时,SDK路径指向一个位置,但命令行上使用的path环境变量指向另一个位置,该位置具有较旧版本的SDK,始终将4.2.2设备显示为脱机。

如果以上任何一个提示都不起作用,请尝试以下步骤解锁OEM:

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

  2. 输入“adb reboot bootloader”。

  3. 然后输入“fastboot oem unlock”。

  4. 在少数设备上,这将需要更多的时间。请耐心等待15分钟。

  5. 重新启动设备

我有这个问题,其他答案都没用。在更新SDK和安装4.2.2的API之后,必须运行:

android update adb

我遇到的另一个问题是,我试图通过Wi-Fi连接ADB,这是我唯一的选择,因为我Mac上的USB端口真的很吝啬。不幸的是,ADB over Wi-Fi没有显示4.2.2中的安全问题,因此您需要找到一根可以工作的USB电缆,并至少通过USB连接一次才能接受安全问题,但在您这样做一次之后,您就可以通过Wi-Fi连接了。

我已经使用了亚洲开发银行版本1.0.29,它可以连接到我的LG-F160K (JB 4.1.2)和Nexus 7 (Android 4.2.2(果冻豆))。LG-F160K使用ADB 1.0.29,但是Nexus 7的设备状态总是“离线”。

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

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

我更新了很多次,直到我不能再更新了,但我的屏幕上从来没有出现过提示;我一直让设备离线。

我的问题是,我在与实际更新的目录不同的目录中运行ADB命令。

ADB exe的正确更新目录是:

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

我尝试了dturvene和其他所有的解决方案,但它们都不起作用。我需要再走一步。

运行这些命令

  1. adb kill-server
  2. android update sdk --no-ui
  3. adb start-server

为了验证它是否有效,在命令之前和之后运行'adb version',并确保它是最新的。adb kill-server命令的原因是它很可能正在运行,并且它在运行时不能被更新,所以你必须首先杀死它。

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

修复:

  1. 断开USB连接——或者如果你是通过Wi-Fi连接的,关闭设备的Wi-Fi。
  2. 关闭Android Studio/Eclipse/其他IDE。
  3. 运行adb kill-server确保adb没有运行。
  4. 重新启动Android设备。
  5. 设备重新启动后,通过USB连接它并运行adb devices。这将启动ADB守护进程。您的设备现在应该再次联机了。

我认为最好的方法是先禁用设备,然后从设备管理器中启用设备,然后运行adb devices命令。

  1. 转到开始选项卡,右键单击电脑
  2. 从下拉菜单中,单击管理
  3. 在计算机管理界面中,单击“设备管理器”
  4. 在右侧窗格中,展开便携式设备以找到您的设备
  5. 右键单击设备名称,然后在下拉菜单中单击“禁用”
  6. 当它被禁用时,除了启用它外,请重复步骤5。

设备将重新上线。这是更快。

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

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

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

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

在我意识到我使用的是在/usr/bin中复制的过时版本的亚洲开发银行后,我终于得到了这个工作。

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

最后,我在局域网上完成了ADB的工作。该设置就在USB调试设置旁边,在ADB中可以通过“ADB connect [IPADDRESS]:[PORT]”激活。我手机的端口是5555。

我希望这能帮助一些人重新回到工作中,而不是不得不处理不断的障碍。

这只是因为你的电脑没有正确的驱动程序。要解决这个问题:

  1. 下载并提取Android SDK

  2. 进入设备管理器(右键单击计算机->属性->设备管理器

  3. 在右侧窗格中展开便携式设备以找到您的设备

  4. 右键单击您的设备名称,然后单击更新驱动程序软件

  5. 在我的电脑上找找驱动软件

  6. 浏览到步骤1中的Android SDK文件夹。

  7. 接下来,你就完成了

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

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

我使用了最上面的答案(由w. allison编辑的hack_on)中建议的亚洲开发银行二进制文件,并且我在我的手机上得到了一个提示,要求允许访问我的PC(它的RSA密钥)!!现在工作得很好。

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

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

杀死Android File Transfer Agent.app进程来寻找连接到Mac的兼容设备(例如,nexus7),对我来说是治愈了这种不稳定。

当我试图从Ubuntu在Galaxy  S  III上安装CyanogenMod时,我也遇到了同样的问题。最后,通过将SD卡直接连接到PC上,我简单地将ZIP文件复制到外部SD卡。然后我将卡移回手机,当我重新启动手机时,我可以从SD卡安装CyanogenMod。

如果你的设备通常通过USB连接,但突然停止工作,特别是在USB线断开并重新连接后,在做其他答案中提到的一些更激烈的事情之前,尝试以下非侵入性步骤:

adb kill-server
adb start-server
adb devices

如果你的设备旁边有“device”字样,那么你的业务就恢复正常了。

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

如果你的设备没有列出,那么你应该尝试其他答案中的解决方案,从尝试不同的USB电缆和端口开始。那些廉价的电缆可能会坏掉。

其他的答案都对我没用。我刚刚在我的Galaxy  S  III上升级到CyanogenMod 10.1 (Android 4.2.2)。对我来说有用的是在开发人员选项中启用调试(要启用,在“关于手机”中单击7次构建号),然后通过USB插入。然后我接受了出现的提示。

尝试重新启动adb服务器,操作如下:

adb kill-server


adb start-server

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

重新启动设备。我尝试了这里列出的所有方法来让我的HTC手机(运行Android 4.0.3)工作,但adb devices一直说它离线。重启后,手机终于上线了。这里的一些其他建议可能有助于手机被识别出来,但在试用过程中重新启动几次肯定不会有什么坏处。

对我来说,这是USB电缆没有一直插入插槽。虽然它显示充电在我的联系5

只需从工具 -> 安卓中启用/禁用ADB集成。这对我很管用。我使用的是Android Studio测试版。

Linux操作系统:删除目录~/.android并重新启动亚洲开发银行

多个adb.exe文件?

当从C: / /窗口删除OLD adb.exe副本时,我的问题得到解决。 我不知道adb.exe是如何拷贝到C:\Windows\ ?

当我从android sdk平台工具/启动adb.exe时,我没有检测问题。

不是真正的答案,但更有助于一些明显的CM问题。 我有一个HTC Inspire HD运行cm-11-20140309非官方BR1-ace(稳定版本)。我可以在更新之前使用adb,但我从来没有安装SDK,因为我不需要。以上所有方法我都试过了。< / p >

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

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

新的CM在developer options下有一个选项,可以启用通过WIFI进行调试,所以我也尝试了一下,结果显示无法连接到IP地址和端口。和其他海报一样,我能ping通IP地址。

我还检查了启用ADB和应用程序的根访问选项,因为它只设置为apps,当我使用ADB设备时,手机仍然显示离线,偶尔它会抛出如上所示的相同错误。

编辑:

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

下面是它显示脱机的原因:http://playingwithsid.blogspot.com/2013/05/android-device-offline-fixing-adb.html

我需要杀死多个adb进程(adb kill-server &adb start-server仍然留下一个滞留进程。)

ps aux | grep adb美元

killall adb美元

晚了,但我找到了最简单的方法 只要转到DDMS并按照图像所示的方式进行操作…

enter image description here

这个方法对我很有效:

  1. adb kill-server
  2. 在设备管理器中禁用脱机设备(见下图)
  3. 在“设备管理器”中启用设备
  4. adb start-server

设备管理器,“查看”菜单,“按连接的设备”:

enter image description here

由于没有人对我的情况给出答案:您可能无法访问~/。android / adbkey文件。如果最初使用sudo启动adb,它将生成一个公钥对,将其写入~/.android/adbkey。Pub和~/android/adbkey。当然,私钥是chmod 600—仅对主目录中的根目录可读。随后以普通用户启动adb将不允许访问私钥文件,这反过来会以“设备脱机”的方式无声地失败。

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

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

只需关闭服务器并重新开始。这对我很管用。

"adb kill-server"
"adb start-server"

分享一下我的情况:

在我的局域网中,所有的andorid板都有相同的默认MAC地址。 所以它将通过DHCP获得相同的IP,因为它有相同的MAC地址

在局域网中有多个相同IP的android板。 adb可以连接到单板(其中一个),可以打开单板的shell(其中一个),但是当将文件推到单板或其他操作时,会得到“设备离线” < p >解决方案: 重写MAC地址,得到不同的IP地址

我使用adb connect <device_ip>和其他解决方案的工作,因为我的问题在另一边。在设备上,我需要stop adbd并重新启动它start adbd。设备现在再次“在线”。

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

这些答案对我都没用,我也试过无线。我注意到adb.exe一直在我的系统进程中运行。右键点击它们,发现adb从安装的应用程序(在我的例子中是Droid Explorer)自动运行。一旦我卸载了自动启动ADB的应用程序,我就可以终止进程,并看到ADB不再自己运行。从平台工具中运行更新后的adb,一切就绪!希望这能帮助到一些人。

试一试

adb usb

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

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

尝试关闭usb调试一次,然后再次启用它,然后将您的设备连接到system: 链接

安装最新的android sdk 修改设备的USB端口
.使用实例 由MTP -> Charge only -> MTP.
它工作。< / p >

上面的一切都试了几个小时。它成功的原因是运行android studio时没有启动任何应用程序。你仍然可以使用chrome来远程调试设备。

在我的情况下,我在第一代华硕Nexus 7上遇到了这个问题。 我已经将日志缓冲区大小从256K增加到4M。只要我把它恢复到默认值(Settings>Developer Settings>Logger buffer size),拔下插头,然后插回去,它就工作得很好

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

我有一台LG G3。手机必须使用LG的驱动程序连接。我去了

__abc0 > __abc1

adb立即在1秒内工作。

禁用防病毒,重新连接usb并检查adb.exe是否没有移动到quartine。

这很可能是由于过时的adb流程。 这可能是因为蹩脚的开发人员将adb和dll打包并安装在Windows的根目录中。例如C:\Windows\adb.exe

.exe

打开任务管理器kill adb.exe,将adb.exe定位在root:\Windows并删除它。然后使用最新的SDK

为我工作:一开始它工作,过了一段时间就离线了。 我做了以下事情: adb kill-server adb start-server。 再次用usb连接电脑 adb devices, 提供的空列表的输出。 adb tcpip 5555, adb connect <mobile wifi ip address>

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

当设备被adb报告为离线时,是因为守护进程不再运行或处于不接受连接的状态。大多数情况下,如果网络在活动(网络)连接上出现故障,就会发生这种情况。

我能解决这个问题的唯一方法是重新启动设备。 人们可以通过许多其他方法来修复离线状态,但重新启动设备总是有效的。< / p >

我通过同样的问题,这解决了我。首先通过usb连接您的手机,然后确保您检查您的移动IP在设置>>关于手机>>状态下运行以下命令。


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

这是个蹩脚的案子,但以防万一……我有一台带电源/usb集线器的mac笔记本电脑,但它只有几个usb端口,所以我在上面挂了另一个电源usb集线器。似乎工作得很好,但出于某种原因,我的安卓设备无法保持连接。插入它,它显示“设备”,但尝试通过adb做任何事情,并得到一个错误,状态变为“离线”。快把我逼疯了。然后我决定尝试将Android设备直接插入到第一个集线器…工作迅速扎实。我已经使用了一段时间的双中心设置,但突然它就停止工作了。希望它能帮助到一些人!

当我面对同样的问题时,我会像下面这样做:

  1. 通过在命令提示符中发出亚行kill-server亚洲开发银行启动服务器来重新启动adb
  2. 关闭并重新打开USB调试
  3. 如果手机仍然不工作,请重新开机。 我99%的问题已经通过这些步骤解决了

好吧,这里没有巫毒,没有盲目尝试,(我希望)解释清楚的解决方案(对不起,我愤怒了,我试着用谷歌搜索解决方案几乎一整天都没有结果)。

首先,让我们了解一下adb与设备的通信方式: https://android.googlesource.com/platform/system/core/+/master/adb/protocol.txt < / p >

简短的故事:主机adb在5037上建立服务器,通过tcp端口5555(默认)连接到设备上的adbd。

这意味着-为了工作,您的adb必须有一条通往本地5037和远程5555的清晰道路。 如果您不能或不想使用USB,您可以在设备上(使用设备终端)设置adbd来侦听,而不需要建立USB连接:

setprop service.adb.tcp.port 5555
stop adbd
start adbd

检查netstat -plant | grep adbd是否adbd正在监听端口5555(或您选择的任何其他端口)。

现在用捕获过滤器port 5555启动Wireshark。在你的主机上执行这个命令:adb connect device_ip:5555(如果你使用非标准端口替换5555)。

根据上面的文档,你应该看到来自这两个方向的CNXN命令!如果你的远程端没有回复,adb devices会说你的设备是offline!游戏结束了。adb devices不做任何网络交换,它只是显示adb connect命令的结果。

我的问题是——我一直在Virtualbox中运行Android,使用NAT网络和转发5555端口。另外,我在端口5554上运行了一个模拟器。它并没有占用5555,但不知为何,这两个干扰和中断了Virtualbox在较低级别的连接,因为我有很多奇怪的重复ack和rst在界面上飞来飞去。这个问题的解决方案是选择不同的端口

如果我说错了请告诉我,但我以前没见过有人这么提议。也没有解释它应该如何工作以及为什么要工作。

这些答案对我都没用。设备一直处于离线状态。真正解决这个问题的是耐心!

也就是说,在adb connect命令自动修复100%的问题后,在发出adb devices之前等待一分钟。

从设备打开Developer options并禁用,然后启用USB debugging

下面是您可以通过命令行执行的步骤。无需访问设备。

步骤1:do "adb devices -l"你会看到脱机设备。现在记下usb后面的数字:usb: 1-1.4.2

步骤2:echo '1-1.4.2' |sudo tee /sys/bus/usb/drivers/usb/unbind

步骤3:echo '1-1.4.2' |sudo tee /sys/bus/usb/drivers/usb/bind

第四步:检查“adb devices -l"”这些设备应该在线。

我的USB连接有问题,所以我试着接上wifi连接。这里几乎什么都试过了,但有一件事我直到最后才尝试,突然它起作用了!所以,如果你被困住了,试试下面这些步骤:

 1. Connect with USB cord
2. adb devices
List of devices attached
HT85X1A00342    device
10.0.0.43:5555  offline


3. adb usb
restarting in USB mode


4. adb reconnect
reconnecting HT85X1A00342 [device]


5. adb tcpip 5555
restarting in TCP mode port: 5555


6. adb devices
List of devices attached


7. adb connect 10.0.0.43:5555
connected to 10.0.0.43:5555

甜蜜的!我不知道强制它重新启动USB模式,然后依次启动TCP/IP模式是否有帮助,或者仅仅是最后三个命令,但显然它开始工作了。我还发现有一个开发者选项可以在Wifi上启用调试,你可以选择你的热点。这也可能会阻止它工作,所以也要检查一下。

好运!

adb reconnect offline -从设备端启动连接以强制重新连接

你能想到的我都试过了。 6小时....对于愚蠢的解决方案

似乎对我有用的是关机,拔下笔记本,拔下电池,按住电源按钮10秒,重新开机

所以疯了。但也许它会帮助其他人。

注:我的情况是:一切工作好算了,字面上有开发工具窗口打开和工作,并且,吹熄蜡烛的声音所有3个设备离线。(并且无论重启[计算机+设备],安装/卸载驱动程序/adb/android studio, Windows更新,切换调试选项,都不会回来。)

我的理论是发生了某种电荷/能量的事情.....

对我来说最有效的是:

  1. 拔出USB并重新插入。

  2. adb kill-server之后使用adb devices

  3. 有时,切换到计算机上不同的USB端口将解决问题。

如果你在通过tcpip无线连接你的设备时得到这个,然后尝试断开你的设备:

adb disconnect <your_ip_address>:port_numberadb disconnect

如< br >

< p > adb disconnect 192.168.1.2:5555 < br > < br > <强>或< / >强 adb disconnect < / p >

不同之处在于,第一个将只断开所需的设备,第二个将断开所有设备。

使用此命令的好处是您不必关闭并重新启动服务器。关闭和重新启动服务器需要你的设备连接到你的电脑,这是最恼人的过程。

我尝试了上面所有的解决方案。大多数情况下,adb kill-server可以解决这个问题。这次问题出在USB线上。包装花哨的劣质电缆是行不通的。

我在尝试使用内置的“无线adb”连接时偶然发现了这个问题。Android 11的新功能。

我没法把它接好。总是显示为“离线”。

我所做的是:

首先断开所有ADB设备,这是一个很好的措施:

adb disconnect

然后在开发者选项中,进入“无线adb”;功能,如果你还没有这样做的话。转到“使用pin配对”;或类似的。在那里,一个IP和端口将在对话框中弹出,以及一个大头针。连接到电话使用:

adb pair 192.168.2.xxx:42838 # Put the IP and port of that dialog in this way

(注意主窗口上的港口和PIN弹出框上的<强> < / >强不是相同的)

您的(PC) ADB将提示您输入pin。输入并按ENTER。

这样做,手机应该上弹出的PIN消失,计算机名应该显示在主窗口的可信设备列表中。

如果你做到了这一步,下一步肯定会奏效。尝试现在连接到您的手机使用:

adb connect 192.168.2.xxx:53548 # This time use the port shown in the main window!

它应该连接好了,你就可以出发了。

第一次,你应该用usb线连接