运行命令
adb devices
返回设备名称,但表示它已脱机。
我尝试过的事情。
我真的不知道发生了什么。你认为我还能尝试的任何其他事情,我都是耳朵。
要明确的是,如果您遇到同样的问题,问题可能是过时的SDK。从4.2.2开始,有一项安全功能要求您确认连接设备的RSA指纹。打开SDK管理器并更新工具!然后重新启动。
答案 0 :(得分:135)
我的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(一次更新)。
答案 1 :(得分:113)
运行adb devices
后尝试运行adb kill-server
。之后出现安全问题。为我工作。
答案 2 :(得分:64)
当您使用Wi-Fi模式连接到设备时,似乎经常发生这种情况(例如,在Android Studio中或在控制台中运行adb tcpip 5555
)。
修复:
adb kill-server
以确保adb未运行。adb devices
。这应该启动ADB守护程序。您的设备现在应该再次在线。答案 3 :(得分:62)
我在运行4.2.2 OTA更新的Nexus 7上遇到了同样的问题。我几乎可以肯定,在更新后我通过USB和Wi-Fi进行了ADB连接,直到它停止工作。要修复,我使用以下方法更新了我的SDK:
android update sdk --no-ui
现在我的开发工具是:
答案 4 :(得分:37)
对于想知道4.2.2的人,手机上会出现一个安全问题,要求通过PC进行RSA验证。确保您的工具已更新并通过验证相关设备上的安全问题来允许PC访问。这为我修好了。
与往常一样,验证您是否在开发人员选项中启用了调试;)
答案 5 :(得分:34)
我不能强调切换USB端口是关键。前面板USB端口通常可能有缺陷。
答案 6 :(得分:21)
多个adb.exe文件?
从 C:/ Windows / 中删除了一份OLD adb.exe时,我的问题解决了。 我不知道 adb.exe 的副本如何到达C:\ Windows \?
当我从 android-sdk / platform-tools / 启动adb.exe时,检测没问题。
答案 7 :(得分:18)
我遇到了这个问题,其他答案都没有帮助。在更新SDK并安装4.2.2的API之后,必要的是运行:
android update adb
我遇到的另一个问题是我试图通过Wi-Fi连接ADB,这是我唯一的选择,因为我的Mac上的USB端口确实非常好看。不幸的是,通过Wi-Fi的ADB没有显示4.2.2中的安全问题,所以你需要找到一条USB线,它可以工作并通过USB连接至少一次以接受安全问题,但是在你这样做之后,您可以通过Wi-Fi连接。
答案 8 :(得分:17)
尝试关闭usb调试一次,然后启用agin,然后将设备连接到系统:link
答案 9 :(得分:13)
如果您的设备通常通过USB连接,但突然停止工作,尤其是在USB电缆断开连接并重新连接后,请尝试以下非侵入性步骤,然后再做其他答案中提到的一些更激烈的事情:
adb kill-server
adb start-server
adb devices
如果您的设备旁边列有“设备”,那么您就可以恢复营业了。
如果您的设备旁边列出了“离线”,请尝试重新启动设备。设备上的ADB守护程序偶尔会挂起。当LogCat正在运行时以及从通过Wi-Fi或以太网连接切换回来后断开电缆时,我已经注意到了这一点。
如果未列出您的设备,则应尝试其他答案中的解决方案,首先尝试使用其他USB电缆和端口。那些便宜的电缆可能会变质。
答案 10 :(得分:12)
更新SDK工具后,请务必使用adb
文件夹中的platform-tools
。
在我意识到我使用/usr/bin
中复制的过时版ADB后,我终于开始工作了。
答案 11 :(得分:8)
有时这可能是因为adb服务器错误(我认为)。它总是说
"device-name is offline" from adb devices command.
只需杀死服务器然后重新开始。它对我有用。
"adb kill-server"
"adb start-server"
答案 12 :(得分:6)
我使用adb connect <device_ip>
而非其他解决方案有效,因为我的问题出在另一边。在设备上,我需要stop adbd
并重新启动它start adbd
。设备现在是&#34;在线&#34;试。
答案 13 :(得分:5)
我尝试了dturvene和所有其他解决方案,但它们没有用。我还需要一步。
运行这些命令
adb kill-server
android update sdk --no-ui
adb start-server
要验证它是否有效,请在命令之前和之后运行“adb version”,并确保它是最新的。 adb kill-server
命令的原因是它最有可能运行,并且在运行时无法更新,因此您必须先将其终止。
答案 14 :(得分:5)
对我来说没什么用。我花了大约12个小时不断在互联网上搜索,并尝试解决其他人有类似问题的解决方案。
最后,我最终只是在局域网上做了ADB的事情。设置就在USB调试设置旁边,在ADB中可以通过“adb connect [IPADDRESS]:[PORT]”激活。我手机上的端口是5555.
我希望这有助于某人重新开始工作,而不必处理不断的弊端。
答案 15 :(得分:4)
安装了最新的android sdk。
更改了设备的USB端口
改为MTP - &gt;仅限充电 - &gt; MTP。
它奏效了。
答案 16 :(得分:4)
我最初遇到了同样的问题(使用从GitHub下载的ADB / fastboot),但我最终得到了它。什么对我有用:
答案 17 :(得分:4)
这种方法对我有用:
adb kill-server
adb start-server
设备管理器,&#34;查看&#34;菜单,&#34;设备连接&#34;:
答案 18 :(得分:3)
ADB连接不稳定的人有另外一种可能性,如果他们在Mac上安装Android File Transfer:我发现文件传输干扰了我的ADB连接,导致它间歇性地停止工作。
杀死寻找与Mac连接的兼容设备的Android File Transfer Agent.app
进程(例如,Nexus 7)可以解决我的问题。
答案 19 :(得分:3)
在Mac上为我解决的问题是将adb
更新为最新版本(1.0.32)。现在我可以再次在线看到我的设备
答案 20 :(得分:3)
我想到的最好的方法是禁用然后从设备管理器启用设备并运行adb devices命令。
该设备将重新上线。它更快。
答案 21 :(得分:3)
如果您之前已经授权了PC的RSA指纹并尝试了adb kill-server等没有运气,那么您的问题可能就是您在锁定时尝试连接它。尝试按下屏幕开启按钮并输入您的图案 - 这为我修复了它。
答案 22 :(得分:3)
由于没有人给出我的情况答案:您可能无法访问〜/ .android / adbkey文件。如果你最初使用sudo启动adb,它将生成一个公钥对,将其写入〜/ .android / adbkey.pub和〜/ android / adbkey。当然,私钥是chmod 600 - 只能在主目录中以root身份读取。随后以普通用户身份启动adb将无法访问私钥文件,而私钥文件又会以&#34;设备离线&#34;静默失败。
答案 23 :(得分:3)
设备被报告为脱机的原因是adb无法连接到该设备。开发环境中的Adb可执行文件将与受控设备建立连接(套接字)。设备具有用于侦听此通信的服务(守护程序)。该守护程序称为adbd(与adbdaemon中一样)。 实际上,当在设备上启用adb时,就会启动该守护程序,因此可以与该设备建立comms。
adb将设备报告为脱机状态是因为守护程序不再运行或处于不接受连接的状态。如果网络在活动(网络)连接上出现故障,通常会发生这种情况。
我可以解决此问题的唯一方法是重新启动设备。 可以通过许多其他方法来修复脱机状态,但是重新启动设备始终有效。
答案 24 :(得分:2)
迟到但我找到了最简单的方法 只需转到DDMS并按照图片中所示进行操作......
答案 25 :(得分:2)
重启设备。我尝试了这里列出的所有内容以使我的HTC手机(运行Android 4.0.3)正常工作,但adb devices
一直说它处于离线状态。重新启动手机后,它终于在线了。这里的一些其他建议可能有助于手机被识别,但在你尝试它们的过程中做一些重启肯定不会受到伤害。
答案 26 :(得分:2)
尝试重新启动adb服务器,如下所示:
adb kill-server
adb start-server
我也遇到了和你一样的问题。并重新启动adb服务器将解决此问题。
答案 27 :(得分:2)
这只是因为您的计算机没有合适的驱动程序。解决这个问题:
下载并解压Android SDK
转到设备管理器(右键单击计算机 - &gt;属性 - &gt;设备管理器
在右侧窗格中展开便携式设备以查找您的设备
右键单击您的设备名称,然后单击“更新驱动程序软件”
浏览计算机以查找驱动程序软件
在步骤1中浏览到您的Android SDK文件夹。
接下来,你已经完成了
答案 28 :(得分:2)
我多次更新,直到我再也无法更新,但我的屏幕上没有提示;我只是让设备脱机。
我的问题是我从另一个目录运行ADB命令到实际更新的内容。
ADB exe的正确更新目录是:
C:\Program Files (x86)\Android\android-sdk\platform-tools\
答案 29 :(得分:2)
我遇到了同样的问题,这对我来说是固定的。首先通过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
答案 30 :(得分:2)
我很惊讶地发现我的解决方案没有列在这里。
对我来说,我有LG G3。必须使用LG的驱动程序连接手机。我去了
设备管理器&gt; 卸载MTP驱动程序
立即adb在没有1秒的情况下工作。
答案 31 :(得分:2)
为我工作:在开始工作并且过了一段时间后离线了。
我做了以下事情:
adb kill-server
adb start-server
。
再次使用usb将手机插入PC
adb devices
,
提供空列表的输出。
adb tcpip 5555
,adb connect <mobile wifi ip address>
然后它再次上线。
答案 32 :(得分:1)
尝试
adb usb
我将我的连接方法更改为tcpip
,然后我想如果我杀了服务器并启动它,它会重置连接方法但不会
这就是为什么以前的答案都不适用于我的案例
答案 33 :(得分:1)
在尝试了两次之后,我将手机软件恢复到稳定的版本,它终于奏效了。我正在运行Cyanogen nightlies。无论如何,这个帖子中发布的内容应该可以帮助遇到此问题的任何人。
答案 34 :(得分:1)
这些答案都不对我有用。设备始终处于脱机状态。真正解决问题的只是耐心!
即,在adb devices
命令之后,在发出adb connect
之前等待一分钟会自动解决此问题100%。
答案 35 :(得分:1)
在Linux中:删除目录~/.android
并重新启动ADB。
答案 36 :(得分:1)
我的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上启用调试,然后选择热点。这也可能会阻止其工作,因此也请进行检查。
祝你好运!
答案 37 :(得分:1)
adb reconnect offline
-从设备端进行踢连接以强制重新连接
答案 38 :(得分:1)
最适合我的是:
拔下 USB 并重新插入。
在 adb devices
之后使用 adb kill-server
有时,切换到计算机上的其他 USB 端口可以解决问题。
答案 39 :(得分:1)
我尝试了上述所有解决方案。大多数情况下, adb kill-server 可以解决这个问题。这一次,问题出在 USB 电缆上。包装精美的劣质电缆不起作用。
答案 40 :(得分:1)
对我来说,事实证明我有两个不同的SDK安装。当我启动Android SDK Manager并从Eclipse更新工具时,SDK路径指向一个位置,但命令行上使用的PATH环境变量指向另一个位置,该位置具有较旧版本的SDK,它始终显示4.2.2设备离线。
答案 41 :(得分:1)
我也遇到了这个问题。我在Android SDK Manager中更新了所有内容,使用设备管理器卸载了我的设备,现在它可以正常工作。我沿途发布了一些“kill-server”和“start-server”...
答案 42 :(得分:0)
以下是您可以通过命令行执行的步骤。无需访问设备。
步骤1:执行“ adb devices -l”,您将看到离线设备。现在记下USB后面的数字:Example => usb: 1-1.4.2
步骤2:回显'1-1.4.2'| sudo tee / sys / bus / usb / drivers / usb / unbind
步骤3:回显'1-1.4.2'| sudo tee / sys / bus / usb / drivers / usb / bind
第4步:检查“ adb设备-l”。这些设备应该在线。
答案 43 :(得分:0)
好的,这里没有伏都教徒,没有盲目的尝试,并且(我希望)对此有很好的解释(抱歉,我很生气,我几乎整个一天都尝试使用谷歌搜索解决方案,但无济于事)。
首先,让我们阅读adb与设备通信的方式: https://android.googlesource.com/platform/system/core/+/master/adb/protocol.txt
简短的故事:主机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
命令的结果。
我的问题是-我一直在具有NAT网络和转发5555端口的Virtualbox内运行Android。另外,我有一个仿真器运行在端口5554上。它没有占用5555,但是由于某种原因,这两个在较低级别上干扰并中断了Virtualbox的连接,因为我在接口上散布着许多奇怪的重复ACK和RST。解决此问题的方法是选择其他端口。
如果我错了,请告诉我,但之前我没有看到有人提出这个建议。都没有解释它应该如何以及为什么起作用。
答案 44 :(得分:0)
当我面临与以下情况相同的问题时:
答案 45 :(得分:0)
我绝对尝试了你能想到的一切。 6 小时.... 对于 愚蠢 解决方案。
似乎对我有用的是关闭笔记本电脑,拔下笔记本电脑插头,弹出电池,按住电源按钮 10 秒,然后重新启动。
太生气了。但也许它会帮助别人。
注意:我的情况是:一切正常hunky dory,实际上 devtools 窗口打开并正常工作,并且,噗所有 3 台设备都离线。 (无论重启[计算机 + 设备]、安装/卸载驱动程序/adb/android studio、Windows 更新、调试选项切换,都不会再回来。)
我的理论是发生了某种充电/电源的事情......
答案 46 :(得分:0)
如果您在通过 tcpip
无线连接设备时遇到此问题,请尝试断开设备连接:
adb disconnect <your_ip_address>:port_number
或 adb disconnect
例如
adb disconnect 192.168.1.2:5555
或者
adb disconnect
区别在于第一个只会断开需要的设备,第二个会断开所有设备。
使用此命令的好处是您不必杀死并重新启动服务器。杀死并重新启动服务器需要将您的设备插入您的计算机,这是最烦人的过程。
答案 47 :(得分:0)
这是一个la脚的案例,但以防万一...我有一台带电源/ USB集线器的Mac笔记本电脑,但它只有几个USB端口,所以我又挂了另一个有源USB集线器。似乎/似乎工作得很好,但是由于某些原因,我的Android设备无法保持连接。插入它,它显示“设备”,但是尝试通过adb执行任何操作并得到错误,并且状态变为“脱机”。让我发疯。然后,我决定尝试将Android设备直接插入第一个集线器……立即可靠地工作了。我已经使用两个集线器设置了一段时间,但是突然之间,它突然停止工作。希望对您有所帮助!
答案 48 :(得分:0)
我在尝试使用 Android 11 中内置的“无线 ADB”功能进行连接时偶然发现了这个问题。
我无法正确连接。始终显示为“离线”。
我所做的是:
首先断开所有 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 会提示您输入密码。输入并按 ENTER。
完成后,手机上的 PIN 弹出窗口应该消失,并且计算机名称应该显示在主窗口的受信任设备列表中。
如果你走到这一步,下一步肯定会奏效。现在尝试使用以下方法连接到您的手机:
adb connect 192.168.2.xxx:53548 # This time use the port shown in the main window!
它应该可以连接了,您就可以开始使用了。
答案 49 :(得分:0)
这很可能是由于过时的adb流程造成的。 这可能是由于蹩脚的开发人员打包adb,dll并将它们安装在Windows的根目录中。例如C:\ Windows \ adb.exe
打开任务管理器杀死adb.exe,找到最有可能位于root:\ Windows中的adb.exe并将其删除。然后使用最新的SDK
答案 50 :(得分:0)
禁用防病毒软件,重新连接usb并检查adb.exe是否未移至quarentine。
答案 51 :(得分:0)
就我而言,我遇到了第一代华硕Nexus 7的问题。 我已将日志记录缓冲区大小从256K增加到4M。只要我将其恢复为默认值(设置&gt;开发人员设置&gt;记录缓冲区大小),拔下并重新插入平板电脑,它就能完美运行。
答案 52 :(得分:0)
在上面尝试了几个小时。让它工作的事情是运行android studio而没有启动应用程序。您仍然可以使用chrome来远程调试设备。
答案 53 :(得分:0)
这些答案都不适用于我,也尝试过无线。我注意到adb.exe一直在我的系统进程中运行。右键单击它们,发现adb是从已安装的应用程序自动运行的(在我的情况下是Droid Explorer)。一旦我卸载了自动启动ADB的应用程序,我就可以终止该进程并看到该adb不再在其上运行。从平台工具中获取更新的adb并且好好去!希望这有助于某人。
答案 54 :(得分:0)
只是分享我的条件:
在我的局域网中,所有的andorid板都默认具有相同的MAC地址。 因此它将通过DHCP获得相同的IP,因为它具有相同的MAC地址。
在局域网中,有多个具有相同IP的android板。 并且adb可以连接到电路板(其中一个),并且可以打开电路板的外壳(其中一个),但是当将文件推送到电路板或其他操作时,“设备离线”。
解决方案: 重写MAC地址,获得不同的IP。
答案 55 :(得分:0)
我需要杀死多个adb进程(adb kill-server
&amp; adb start-server
仍然留下一个挥之不去的进程。)
$ ps aux | grep adb
$ killall adb
答案 56 :(得分:0)
不是一个真正的答案,但更多的贡献显然是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密钥。由于某种原因,我之前没有提示,现在手机正在连接。因此,问题可能是需要在重新启动后将根访问权限从应用程序切换到应用程序和adb。
以下是离线显示的原因:http://playingwithsid.blogspot.com/2013/05/android-device-offline-fixing-adb.html
答案 57 :(得分:0)
只需从工具启用/禁用ADB集成 - &gt; 的Android 。这对我有用。我正在使用Android Studio测试版。
答案 58 :(得分:0)
答案 59 :(得分:0)
其他答案都不适合我。我刚刚在CyanogenMod上升级到Galaxy S III 10.1(Android 4.2.2)。对我来说有用的是在开发人员选项中启用调试(启用,在“关于手机”中点击内部版本号七次),然后通过USB插入。然后我接受了出现的提示。
答案 60 :(得分:0)
我在尝试从Ubuntu CyanogenMod安装Galaxy S III时遇到了同样的问题。最后,我只是通过将SD卡直接连接到PC,将ZIP文件复制到外部SD card。然后我将卡移回手机,当我重新启动手机时,我可以从SD卡安装CyanogenMod。
答案 61 :(得分:0)
我刚刚在CyanogenMod Samsung Galaxy S III的最新ADB夜间更新(2013年8月12日)后面临同样的问题。
我使用了最顶层答案中建议的Fastboot二进制文件(由w.allison编辑的hack_on),我的手机上有一个提示,要求允许访问我的PC(其RSA密钥)!!现在工作正常。
下载链接(仅限亚行,https://dl.google.com/android/repository/platform-tools_r16.0.1-windows.zip及相关二进制文件):{{3}}
答案 62 :(得分:0)
我使用了ADB版本1.0.29,它可以连接到我的LG-F160K(JB 4.1.2)和Nexus 7(Android 4.2.2 (Jelly Bean))。 LG-F160K与ADB 1.0.29配合使用,但Nexus 7的设备状态始终处于“离线”状态。
我已从Google Android网站下载了adt-bundle-linux-x86-20130219.zip,现在我可以连接到Nexus 7。我目前正在使用ADB 1.0.31版本。
只需下载最新的SDK或更新您的ADB实用程序。
答案 63 :(得分:-1)
从设备打开Developer options
,然后禁用然后启用USB debugging
。
答案 64 :(得分:-10)
如果上述任何提示无效,请尝试以下步骤解锁OEM:
打开命令提示符并设置平台工具路径。
输入“adb reboot bootloader”。
然后输入“fastboot oem unlock”。
在一些设备上需要更多时间。请耐心等到@ 15分钟。
重启设备