Android模拟器-5554离线

时间:2010-06-30 19:25:33

标签: android android-emulator

我遇到了模拟器-5554的问题,它一直告诉我它处于脱机状态。

当我从命令行执行adb devices时,它会显示

emulator-5554 offline

即使重新启动,我也会尝试该命令,但仍然说它处于脱机状态。

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

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

由于

38 个答案:

答案 0 :(得分:74)

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

enter image description here

2。如果它不起作用,请转到模拟设备并启用开发人员选项&gt;启用USB调试

答案 1 :(得分:50)

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

  1. 转到cmd并输入“adb kill-server”
  2. 转到任务管理器并在流程中找到“adb”。如果找到一个,右键单击它并单击结束进程树。
  3. 在eclipse中,转到Window&gt; Android虚拟设备管理器,单击要启动的AVD,单击开始并取消选中“从快照启动”,然后单击启动。
  4. 就是这样!这需要一段时间,它应该可以解决您的问题。

答案 2 :(得分:22)

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

您在adb devices列表中看到的数字(在您的情况下为5554)将比adb找到的端口少一个。

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

答案 3 :(得分:15)

此解决方案适用于Windows。

(请参阅@Chris Knight's solution了解 Mac / Linux

  1. 启动Windows Powershell:

    开始 - &gt;输入'powershell' - &gt;按ENTER键

  2. 运行以下命令: adb devices

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

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

    1. Per @Brigham,“Android检测模拟器的方式是 扫描端口从端口5555开始。“。端口号在仿真器名称后面指示(在本例中为5656和5652)。要检查的端口号是仿真器端口号加1.所以在这种情况下: -

      5656 + 1 = 5657

      5652 + 1 = 5653

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

    2. 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替换为上一个命令的输出:
      2. 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。
        2. PS C:\Users\CJBS> kill 5944
          
          1. 要确认虚假仿真器已消失,请重新运行以下命令: adb devices
          2. 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重新启动(因为它之前已被杀死),并且它不再检测到虚拟仿真器。

答案 4 :(得分: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

并且ghost离线设备已不复存在!

答案 5 :(得分:7)

就我而言,我发现了一些使adb无法正常工作的过程 您可以尝试杀死一些奇怪的进程并运行“adb devices”进行测试。

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

答案 6 :(得分:6)

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

adb kill-server

adb devices

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

答案 7 :(得分:6)

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

答案 8 :(得分:5)

我终于解决了这个问题, 我必须从模拟器中的设置转到开发人员选项, 然后向下滚动一点,打开USB调试。我的设备立即在线识别,我不再遇到这个问题。我尝试重启android studio和模拟器​​,杀死 adb 进程,但这些都没有用。

答案 9 :(得分:4)

从操作下拉列表中的AVD经理列表: 现在冷启动

在没有上述任何痛苦的情况下重启它。

答案 10 :(得分:4)

从AVD Manager尝试&#34;现在冷启动&#34;下拉列表中的选项。它对我有用!

答案 11 :(得分:3)

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

答案 12 :(得分:2)

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

答案 13 :(得分:2)

启用USB调试到您的模拟器

  1. 设置&gt;关于手机&gt;内部版本号&gt;点击它7次成为开发人员;
  2. 设置&gt;开发人员选项&gt; USB调试。
  3. 这就是它的享受

答案 14 :(得分:2)

只需写下

adb -e reboot

并对adb感到满意))

答案 15 :(得分:2)

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

转到任务管理器并使用“Bluestacks”

的描述结束所有进程

答案 16 :(得分:2)

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

答案 17 :(得分:1)

我尝试了所有东西,但只有这个适用于我的情况: 使用SDK管理器,然后重新安装系统映像。 Android Studio,单击配置,SDK管理器,启动独立SDK管理器, 检查所有“Google API Intel x86 * System Image”,“Intel x86 Atom * System Image”并安装。然后重新启动Android studio。

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

答案 18 :(得分:1)

以我为例,我从“立即启动冷启动”开始,然后单击“消息”以允许连接。

答案 19 :(得分:1)

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

希望有帮助,再见

答案 20 :(得分:1)

确保标记了启用ADB集成; 转到工具&gt; Android&gt;启用ADB集成。

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

答案 21 :(得分:1)

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

答案 22 :(得分:1)

我发现当我使用的adb修订版本不是最新版本时,仿真环境会“脱机”。我正确更新了我的路径(并删除了旧的adb版本),在“adb kill-server”,“adb devices”上,仿真环境不再是“离线”。

在那之后我立即能够使用“adb shell”。

答案 23 :(得分:1)

如果模拟器已经打开或正在执行,它将告诉您处于脱机状态。您可以仔细检查命令行(Ubuntu)并执行:

 adb devices

您必须看到您的模拟器脱机,您必须关闭模拟器的运行实例(因为端口将显示为忙),然后您可以运行您的应用程序。希望这有助于某人。

答案 24 :(得分:1)

试试这个......

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

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

  3. 在commandprompt中输入Command并按ENTER键:adb tcpip 5555

  4. (确保一次只运行一个模拟器。)

    1. adb -s emulator-5555 emu kill

    2. 按Enter键....

    3. 完成。

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

答案 25 :(得分:0)

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

答案 26 :(得分:0)

就我而言,原因是 VMware NAT 连接设置中的端口转发。

答案 27 :(得分:0)

步骤01::从AVD管理器中删除当前模拟器 步骤02:添加新的模拟器。选择设备=>选择系统映像,在此步骤中,转到 x86映像标签,然后选择一个具有 google APIs 的目标。 步骤03:完成所有步骤。你很好去?️

答案 28 :(得分:0)

请参见emulator-5554 unauthorized for adb devices。在API 29模拟器上,我运行adb devices命令并收到emulator-5554 unauthorized消息。然后,我从avd映像(在我的情况下为Q,x86)而不是从Google APIs创建了一个新的Google Play设备。

答案 29 :(得分:0)

打开模拟器,

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

答案 30 :(得分:0)

再次删除并创建齿轮avd。它会起作用。

答案 31 :(得分:0)

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

答案 32 :(得分:0)

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

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

答案 33 :(得分:0)

在我的情况下,我取消选中了“GPU主机”并且其工作正常:)

答案 34 :(得分:0)

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

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

答案 35 :(得分:0)

只需擦除AVD管理器中的用户数据,然后输入adb kill-server和adb设备。 擦除数据还可以节省系统中的大量内存空间。

答案 36 :(得分:0)

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

答案 37 :(得分:0)

我会在这里添加另一种可能的解决方案,这就是我的情况。

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

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

干杯