Android模拟器-5554离线

我的模拟器-5554有一个问题,它一直告诉我它是离线的。

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

emulator-5554 offline

即使在重新启动后,我尝试该命令,它仍然说它离线。

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

我到底怎么才能摆脱那个该死的模拟器-5554?我听说如果你重新启动,它应该清除所有的设备,但这似乎不工作。就像电脑启动时初始化一样。有人遇到过这个问题吗?

谢谢

260657 次浏览
你试过删除和重新创建你的AVD吗? 您可以手动删除AVD文件通过转到它们存储的目录(在您的用户的/。android / avd子目录)。< / p >

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

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

你在adb devices列表中看到的数字(在你的例子中是5554)将比adb发现打开的端口小1。

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

在我的案例中,我发现了一些使adb不能很好地工作的过程 你可以尝试杀死一些奇怪的进程,并运行“adb devices”来测试

它对我有用:
关闭进程名monyo .exe

我发现当我使用的adb修订不是最近的时候,模拟环境会显示为“脱机”。我正确地更新了我的路径(并删除了旧的adb版本),在“adb kill-server”,“adb devices”时,模拟环境不再出现“脱机”。

从那以后,我马上就能使用“adb shell”了。

你安装了蓝叠吗?如果这样做,它运行的后台进程将创建脱机设备“模拟器-5554”。

转到任务管理器,使用“Bluestacks”的描述结束所有进程

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

亚行kill-server

亚洲开发银行设备

启动后,ADB现在检测设备/模拟器。

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

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

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

就是这样!这需要一段时间,应该能解决你的问题。

试试这个…

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

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

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

(确保一次只有一个模拟器在运行。)

  1. Adb -s模拟器-5555 emu kill

  2. 按Enter键....

  3. 完成了。

  4. 在cmd中使用“adb devices”命令检查设备。

简单地删除和创建齿轮avd再次。它会起作用的。

在我的情况下,原因是我恢复了一个内置android-x86的虚拟机。使用Android-x86重启虚拟机并重新启动adb服务器可以解决该问题。

如果你在Linux或Mac上,并且假设离线设备是'模拟器-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

幽灵脱机装置也不复存在了!

在macOS大苏尔和以后,使用

sudo lsof -i -P | grep LISTEN | grep 5554

找出这个过程。

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

如果模拟器已经打开或正在执行,它将告诉您已脱机。你可以在命令行(Ubuntu)上再次检查并执行:

 adb devices

您必须看到模拟器离线,必须关闭模拟器的运行实例(因为端口将显示为繁忙),然后才能运行应用程序。希望这能帮助到一些人。

只写

adb -e reboot

对adb感到满意))

在我的情况下,我已经取消了“GPU主机”和它的工作:)

此解决方案适用于Windows。

(有关Mac / Linux,请参阅克里斯·奈特的解决方案)

  1. 启动Windows Powershell

    Start -> type 'powershell' ->按ENTER键

  2. 执行如下命令:adb devices . sh


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

在本例中,12b80FF443是我的物理设备,模拟器-*项是垃圾。

  1. Per @Brigham, " Android检测模拟器的方式是通过 扫描从5555端口开始的端口”。端口号指示在模拟器名称之后(在本例中是5656和5652)。要检查的端口号是模拟器端口号加1。在本例中:-

    5656 + 1 = 5657

    5652 + 1 = 5653

    让我们看看哪个程序正在使用这些端口。在本例中,要检查的端口都以“565”开头。因此,我将从565开始搜索正在使用的端口。执行:netstat -a -n -o | Select-String ":565" < / p >


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,将5944替换为前面命令中的PID。

PS C:\Users\CJBS> kill 5944
  1. 要确认伪造模拟器已经消失,请重新运行以下命令:亚洲开发银行设备

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重新启动(就像它之前被杀死的那样),并且它没有检测到更多的假模拟器。

只需从AVD管理器擦除用户数据,然后进入adb kill-server和adb设备。 擦除数据也会节省大量的系统内存空间

我尝试了所有的方法,但只有这一个对我的情况有效: 使用SDK管理器,重新安装系统镜像。 Android Studio,点击配置,SDK管理器,启动独立SDK管理器, 检查所有“谷歌api Intel x86* System Image”,“Intel x86 Atom*System Image”并安装。然后重新启动Android studio

您可能需要重新配置并使用AVD管理器擦除虚拟设备,确保您选择x86版本。

我将在这里添加另一种可能的解决方案,这在我的案例中是有效的。

我发现有一个名为spiceworksevenprocessor的进程正在运行,它占用了端口5555,并且显然被adb作为模拟器读取。杀死这个进程最终为我移除了那个顽固的模拟器设备。

我不确定这个东西是什么,但如果你有它,它可能是你的离线模拟器的原因。

干杯

在Linux或MAC上被阻塞的端口将模拟器-id + 1所以5555所以: Sudo lsof -i:5555 将显示占用端口的进程的pid(应该是第二列),以便杀死它: Sudo lsof -i:5555 | awk '{print $2}' | xargs kill < /代码> < / p >

然后adb(假)设备将不再显示在列表中

1 . 简单的“擦除数据”来解决这个问题。

enter image description here

2。如果它不起作用,转到模拟设备并启用开发人员选项>启用usb调试

确保您的启用ADB集成被标记;

. go to Tools>Android>启用ADB集成

如果未选中,请选中此选项并关闭虚拟设备并重新打开。这对我很有效。祝你好运! !

以上所有答案都没有帮助,然后我删除并重新创建模拟器都工作正常

在模拟器中启用USB调试

  1. 设置>关于话机>构建号>轻按7次,成为开发人员;
  2. >开发人员选项> USB调试。

就这样,喜欢

在MAC中,您可以使用活动监视器实用程序,因为与Linux不同,我们不能在MAC中使用netstat -tulpn命令。搜索模拟器的运行实例,通常是qemu-system-i386。杀死该实例,您将看不到任何鬼模拟器正在运行。

获取活动监视器实用程序的最简单方法是使用聚光灯搜索。只需点击cmd-space并键入活动监视器

我也有同样的问题。我已经尝试了这里描述的所有解决方案,但它们都没有帮助我。然后我删除了Android虚拟设备管理器中的所有模拟器,并创建了新的模拟器。问题出现在Android虚拟设备管理器CPU / ABI系统映像配置中。我的Windows10机器模拟器的系统映像x86总是离线,其中模拟器的系统映像x86_64工作正常。要注意这一点

我终于解决了这个问题, 我必须从模拟器中的设置转到开发人员选项, 然后向下滚动一点,打开USB调试。我的设备很快就在网上被认出来了,我不再面临这个问题。我尝试了重新启动android studio和模拟器,杀死亚洲开发银行进程,但这些都不工作。< / p >

从AVD管理器尝试“冷启动现在”下拉选项。这对我很管用!

从AVD管理器列表中的actions下拉菜单: 现在冷启动

重新启动它没有任何痛苦上面。

在我的例子中,模拟器可以使用Oreo和lower,但不能使用Pie,而且我所尝试的一切似乎都没有效果。最终起作用的是将模拟器更新到最新(版本28)。

在我的例子中,我从“Cold Boot Now”启动,然后点击Message允许连接。

我的虚拟设备也有同样的问题。这个问题是由于虚拟设备的奥利奥形象与Play Store集成。为了解决这个问题,我安装了一个没有集成Play Store的新设备,一切都很好。

希望有帮助,再见

打开模拟器,

设置——>关于模拟设备——>反复单击Build number——>打开开发人员选项——>打开USB调试开关

看到模拟器-5554未授权用于adb设备。在API 29模拟器上,我运行adb devices命令并得到emulator-5554 unauthorized消息。然后我从Google APIs映像(在我的例子中是Q, x86),而不是从Google Play创建了一个新的avd设备。

从AVD管理器中删除当前模拟器 添加新的模拟器。select device =>选择系统镜像,在这一步中,到X86映像选项卡并选择一个目标为谷歌api的镜像。 步骤03:完成所有步骤。你可以去🎉️

在我的例子中,原因是VMware的NAT连接设置中的端口转发。

如果您擦除数据,您的模拟器仍然无法连接到互联网。 enter image description here < / p >

Please check your DNS network and add DNS 8.8.8.8 enter image description here < / p >

我使用命令行启动模拟器,那里有一个选项:

-delay-adb "delay adb communication till boot completes"

不幸的是,它在引导完成后仍然处于离线状态。去掉这个选项就解决了问题。

对于mac用户

转到终端,输入adb kill-server,然后强制退出应用程序,找到任何模拟器正在运行,然后单击强制退出。

尝试使用defaultgoogle_apis系统映像,而不是google_apis_playstore,因为playstore映像需要身份验证。

< p >看这里: https://stackoverflow.com/a/55196967/1050542 < / p >

删除AVD并重新安装是唯一对我有效的方法。

在我的例子中,是jdk版本导致了这个问题。A-Studio 花栗鼠(2021.2.1)使用的应该是openjdk-8-jdk,而不是系统预安装的openjdk-11。在运行:

apt install -y openjdk-8-jdk

花栗鼠的问题解决了!

我发现这个解决方案是解决sdkmanager遇到的问题的附带工作。链接修复sdkmanager java.lang.NoClassDefFoundError批处理文件提供了最佳帮助。

移除AVD设备上的锁将有助于运行擦除数据,现在冷启动,删除等操作将起作用,如果它们之前不起作用。

运行下面的操作来打开锁。AVD名称是您在创建它时给出的名称。

rm -vfr ~/.android/avd/[AVD name].avd/*.lock

这个命令为我工作,并杀死模拟器运行在后台-

adb emu kill

只是补充一下,它可能是你从模拟器或调试模式禁用了开发人员选项

在这些情况下,终端在尝试执行操作时会打印adb: device offline