Android emulator-5554离线


134

我在使用模拟器-5554时遇到问题,它不断告诉我它处于脱机状态。

当我adb devices从命令行执行操作时,它说

emulator-5554 offline

即使重新启动后,我仍然尝试执行该命令,但仍显示它处于脱机状态。

问题是当我尝试abd install <path>从命令提示符下使用.apk文件将其安装到模拟器时,它告诉我它是脱机的,如果我创建另一台设备并运行该设备,然后尝试安装.apk文件,则说我连接了太多设备。换句话说,我无法安装.apk文件。

我该如何摆脱那个该死的模拟器5554?我听说如果您重新启动,它将清除所有设备,但这似乎不起作用。就像我的计算机启动时正在初始化一样。有没有人遇到这个问题?

谢谢


3
为了确定问题是否出在模拟器上,请尝试以下操作:1.打开模拟器。2.打开另一个仿真器。3. adb devices获取仿真器的名称。4.尝试执行以下操作来安装APK:adb -s NAME_OF_DEVICE install file.apk5.告诉我们会发生什么。
克里斯蒂安(Cristian)

当我回到家(现在正在工作)时,我会尝试一下,但我不知道您可以指定要安装的设备。那应该真的很有帮助。我会在几个小时后更新。谢谢回复!
hanesjw 2010年

再次感谢您的评论。我能够按照您说的在模拟器上安装apk。断开连接的那个仍保留在我的设备列表中,但我要做的就是安装该.apk。再次感谢,它有效!
hanesjw'7

我认为这个问题与以下内容有关:stackoverflow.com/questions/6013624/…尝试看一下该线程。
常春藤

这不会回答您的问题,但可能会解决您的问题- adb -d指定USB设备而不是仿真器,adb -e仿真器而非USB设备,adb -s NAME我想可以用来指定您想要的设备,尽管我不清楚最后一个是否一个总是按照您的想法工作。
Erhannis

Answers:


62

在这种情况下,您可以执行以下所有操作,以确保模拟器重新开始工作:

  1. 转到cmd并键入 adb kill-server
  2. 转到任务管理器并查找adb流程。如果找到一个,请右键单击它,然后单击结束进程树。
  3. 在Eclipse中,转到“ 窗口”>“ Android虚拟设备管理器”,单击要启动的AVD,单击“ 启动 ”,然后取消选中“ 从快照启动 ”,然后单击启动。

而已!这将需要一段时间,并且应该可以解决您的问题。


这对我也有用(在任何情况下,杀死亚行都无法解决我的问题)。
Booger 2014年

一旦我杀死了该进程树,运行中的adb运行设备列表就会清除:)。<3感谢
DeathRs 2015年

9
在Android Studio中,将虚拟设备启动选项从快速启动更改为冷启动对我有效。
Eldes

从Visual Studio 2019执行时,在Android设备管理器中的哪里可以找到“从快照启动”设置?
jacktric

106

1。只需“擦除数据”即可解决此问题。

enter image description here

2。如果不起作用,请转到仿真设备并启用开发人员选项>启用USB调试


1
从模拟器上卸载该应用程序对我来说很成功。但它是相同的思路擦数据
詹姆斯

1
这有助于ind与“擦除数据”下方的“立即冷启动”组合。
S. Gissel

真是太棒了,您保存了我的一天
Manh Nguyen

24

Android检测模拟器的方法是扫描从端口5555开始的端口。

您在 adb devices列表中(在您的情况下为5554)将比adb查找打开的端口小1。

您可能正在运行一个正在侦听端口5555的进程。要摆脱“离线”设备,您将需要找到该应用程序并将其关闭或重新配置以侦听其他端口。


问题是关于亚行的。ADB的端口号在5555开始
布里格姆

2
“您可能正在运行正在侦听端口5555的进程”。当我们在该端口上运行另一台服务器并完全忘记它时,这确实很有帮助!
Abhijit

它总是始于5554-在我所有的PC(家用和办公用PC)上……并且在使用多个仿真器时,它总是偶数(5554、5556、5558、5560等)。
Phantômaxx

弗兰克,你为什么认为他们都一样?这是因为Android还使用了两者之间的奇数端口。
布里格姆

这也对我有帮助!我在5555上打开了一个端口,该端口显示为模拟器5554(?)。已尝试不起作用的“重新启动服务器”样式答案的每个人都应继续进行操作,portscan可以使用其本地主机。我以为亚行将更直接地使用USB设备,而不是查看我的本地端口并假设那里甚至没有进行协议检查都会有一个仿真器。
mvr

22

此解决方案适用于Windows。

(请参阅@Chris Knight针对Mac / Linux 的解决方案

  1. 启动Windows Powershell:

    开始->输入'powershell'->按ENTER

  2. 运行以下命令: adb devices


PS C:\Users\CJBS>adb devices
List of devices attached
emulator-5656   host
emulator-5652   host
12b80FF443      device

在这种情况下,12b80FF443是我的物理设备,并且emulator- *条目是垃圾。

  1. 每个@Brigham,“ Android检测仿真器的方法是扫描从端口5555开始的端口。” 端口号在仿真器名称之后表示(在这种情况下为5656和5652)。要检查的端口号是仿真器端口号加1。因此,在这种情况下:

    5656 + 1 = 5657

    5652 + 1 = 5653

    因此,让我们看看哪个程序正在使用这些端口。在这种情况下,要检查的端口均以“ 565”开头。因此,我将搜索从565开始使用的端口。执行:netstat -a -n -o | Select-String ":565"


PS C:\Users\CJBS> netstat -a -n -o |  Select-String ":565"

  TCP    127.0.0.1:5653         127.0.0.1:5653         ESTABLISHED     5944
  TCP    127.0.0.1:5657         127.0.0.1:5657         ESTABLISHED     5944
  1. 此输出中的最后一个字段是PID(进程ID)-在这种情况下,这两个端口都是PID 5944。因此,让我们看看这个进程ID是什么。执行:tasklist /v | Select-String 5944。将5944替换为先前命令的输出:

PS C:\Users\CJBS> tasklist /v | Select-String 5944

adb.exe                       5944 Console                    1      6,800 K Running         MyPCName\CJBS          0:06:03 ADB Power Notification Window

真是惊喜 是亚行。正如其他答案所指出的,它也可能是其他程序。

  1. 现在,只需杀死该进程ID。执行kill 5944,用上一条命令中的PID替换5944。

PS C:\Users\CJBS> kill 5944
  1. 要确认虚假模拟器已消失,请重新运行以下命令:adb devices

PS C:\Users\CJBS>adb devices
List of devices attached
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
12b80FF443      device

ADB重新启动(因为之前已被杀死),并且不再检测到伪造的仿真器。


9

我终于解决了这个问题,我不得不去开发人员选项设置仿真器,然后向下滚动了一下,打开了USB调试。立刻我的设备在网上被识别,并且我不再面临该问题。我尝试重新启动android studio和模拟器,杀死了adb进程,但是这些没有用。


1
你是英雄!
Felipe Castilhos

嗨,@ Shamsul,您能描述一下如何从仿真器的“设置”中访问“开发人员选项”吗?我想您是指Android Studio中的AVD Manager。我在此线程中描述了相同的问题,并尝试了所有建议的方法(除了您的建议)。我在AVD管理器中看不到模拟器的任何开发人员选项。
艾迪

嗨,埃迪,对于仿真器和真实设备,打开开发人员选项的通常过程相同。在软件信息中找到内部版本号,反复点击它,大约7到10次点击后,您将看到开发人员选项已启用。
Shamsul Arefin Sajib

8

如果您使用的是Linux或Mac,并且假定脱机设备为“ emulator-5554”,则可以运行以下命令:

netstat -tulpn|grep 5554

产生以下输出:

tcp        0      0 127.0.0.1:5554          0.0.0.0:*               LISTEN      4848/emulator64-x86
tcp        0      0 127.0.0.1:5555          0.0.0.0:*               LISTEN      4848/emulator64-x86

这告诉我,进程ID 4848(您可能会有所不同)仍在端口5554上进行侦听。您现在可以使用以下命令终止该进程:

sudo kill -9 4848

幽灵离线设备不再存在!


8

在AVD Manager中,尝试下拉菜单中的“立即启动”选项。它为我工作!


在采用这些过于复杂的其他解决方案之前,这可能是人们应该尝试的第一件事……
ralfoide '19

7

以我为例,我发现一些进程使adb无法正常工作。
您可以尝试杀死一些奇怪的进程并运行“ adb设备”进行测试。

它对我
有用:杀死进程名称MONyog.exe


7

我通过打开命令提示符解决了这个问题:

亚行杀害服务器

adb设备

启动后,ADB现在会检测到设备/仿真器。


7

我也有同样的问题。我已经尝试过这里描述的所有解决方案,但是它们并没有帮助我。然后,我在Android虚拟设备管理器中删除了所有模拟器,并创建了新模拟器。问题出在Android虚拟设备管理器的CPU / ABI系统映像配置中。在具有系统映像的Windows10机器上,模拟器始终处于脱机状态,其中具有系统映像的模拟器可以正常工作。请注意这一点x86x86_64


就我的情况而言,x86系统会在Windows 10上映像,我只需要删除所有模拟器然后重新创建它们
Dika,

1
非常感谢,我花了很多时间试图使它
生效

同样在这里,但在Windows 7
尤Brešan

5

写就好了

adb -e reboot

并对adb感到满意))


这告诉ADB重新启动模拟器。如果标记为脱机,它将无法工作。
shkschneider

如果您先前执行rm -Rf ~/.android过清理离线设备的操作,则可以使用。最好的命令,只有一个可以解决我的问题。没有kill-serverstart-server没有把戏。
维克多·奥利维拉


4

从“操作”下拉列表中的“ AVD管理器”列表中:立即冷启动

重新启动它,而没有上面的所有痛苦。


3

“清除用户数据”选项终于解决了我的问题。只需在每次启动模拟器时擦除用户数据。这总是对我有用!我使用Windows 8 x64,eclipse


尝试了以上所有方法,但仅与清除擦除用户数据一起使用。谢谢
Sai Ram,

@SaiRam,您没有在上面进行所有尝试,因为在一些答案中都重复了此提示。也有Cold Boot Now帮助。
CoolMind

@SaiRam,对不起。:) 谢谢。
CoolMind

2

您是否尝试删除并重新创建AVD?您可以通过转到AVD文件的存储目录(在用户的/.android/avd子目录中)来手动删除它们。


您好,感谢您的答复。我确实尝试过。还在那里。我很想重新安装所有内容。
hanesjw 2010年

2

转到Windows任务管理器并结束进程“ adb.exe”。同一进程可能有多个实例,请确保结束所有实例。


1
“ adb kill-server”怎么样?
DagW

2

您是否安装了bluestack?如果这样做,则运行的后台进程将创建脱机设备“ emulator-5554”。

转到任务管理器,并以“ Bluestacks”的描述结束所有过程


2

在linux或mac上,被阻止的端口将是emulator-id + 1,所以5555这样: sudo lsof -i :5555 将向您显示占用该端口的进程的pid(应该是第二列),以便将其杀死: sudo lsof -i :5555 | awk '{print $2}' | xargs kill

那么adb(假)设备将不再显示在列表中


2

在我的情况下,该模拟器与Oreo及更低版本的操作系统一起使用,但与Pie无关,并且我尝试的所有操作似乎均无效。最终有效的方法是将模拟器更新为最新版本(版本28)。


我也是...非常烦人
-Analizer


2

打开您的模拟器,

设置->关于模拟设备->反复单击内部版本号->打开开发人员选项->打开USB调试


问题是模拟器只是一个黑屏。仅当您可以访问设置时才可以这样做。
珍妮·维恩

1

我发现当我使用的adb修订版本不是最近时,仿真环境显示为“ offline”。我正确地更新了路径(并删除了旧的adb版本),并且在“ adb kill-server”,“ adb设备”上,仿真环境不再显示为“脱机”。

在那之后,我立即可以使用“ adb shell”。


1

试试这个 ...

  1. 如果正在运行,请关闭模拟器。

  2. 再次启动模拟器并等待其在线。

  3. 在命令提示符中输入Command,然后按Enter键:adb tcpip 5555

(确保一次仅运行一个模拟器。)

  1. adb -s emulator-5555 mu杀

  2. 按Enter键...

  3. 做完了

  4. 通过命令cmd中的“ adb设备”检查设备。


1

如果仿真器已经打开或正在执行,它将告诉您离线。您可以在命令行(Ubuntu)上仔细检查并执行:

 adb devices

您必须看到仿真器处于脱机状态,您必须关闭仿真器的运行实例(因为端口将显示为繁忙),然后才能运行应用程序。希望这对某人有帮助。


1

我尝试了所有方法,但只有以下一种适用于我的情况:使用SDK管理器,然后重新安装系统映像。在Android Studio中,依次单击“配置”,“ SDK管理器”,“启动独立SDK管理器”,选中所有“ Google API Intel x86 *系统映像”,“ Intel x86 Atom *系统映像”并安装。然后重新启动Android Studio。

您可能必须使用AVD Manager重新配置和擦除虚拟设备,请确保选择x86版本。


对我来说,是x86_64版本有效,其他版本无效
hiddeneyes19

1

确保已标记启用的ADB集成;转到“工具”>“ Android”>“启用ADB集成”。

如果未选中,请选中此选项并关闭您的虚拟设备,然后重新打开它。这对我有用..祝你好运!


1

我的虚拟设备存在相同的问题。该问题是由于集成了Play商店的虚拟设备的Oreo映像引起的。为了解决此问题,我安装了未集成Play商店的新设备,一切正常。

希望能有所帮助,再见


真是奇怪的情况,但对我来说也解决了。
reidisaki


0

在我的情况下,原因是我恢复了其中装有android-x86的虚拟机。重新启动具有Android-x86的VM并重新启动adb服务器解决了该问题。


0

这是因为您的计算机上安装了另一个虚拟设备。可能是Bluestacks,因为我也面临类似的问题。我卸载了Bluestacks,然后检查 adb devices 它当时运行良好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.