Android模拟器-5554离线
我遇到了emulator-5554的一个问题,它一直告诉我它是离线的。
当我从命令行执行adb devices
,它说
emulator-5554 offline
即使重新启动之后,我仍尝试执行该命令,但仍然表示它处于脱机状态。
问题是当我尝试从命令提示符使用abd install <path>
安装.apk文件到模拟器,它告诉我它是脱机的,如果我创build另一个设备并运行那个,然后尝试安装.apk文件,它说我有太多的设备连接。 换句话说,我不能安装我的.apk文件。
如何在世界上我可以摆脱那该死的模拟器-5554? 我听说如果你重新启动,它应该清除所有的设备,但似乎没有工作。 这就像我的电脑启动时它正在初始化。 有没有人遇到这个问题?
谢谢
在这种情况下,您可以执行以下所有操作,以确保您的模拟器重新开始工作:
- 转到cmd并input“adb kill-server”
- 转到任务pipe理器,在进程中find“adb”。 如果你find一个,右键单击它并点击结束进程树。
- 在eclipse中,转到Window> Android虚拟设备pipe理器,点击你想启动的AVD,点击开始,取消选中“从快照启动”,然后点击启动。
而已! 这将需要一段时间,它应该解决您的问题。
Android检测模拟器的方式是扫描从端口5555开始的端口。
您在adb devices
列表中看到的数字(在您的情况下为5554)将比adb正在查找的端口less一个。
您可能正在运行一个正在侦听端口5555的进程。要摆脱“离线”设备,您需要find该应用程序并closures它,或重新configuration它以侦听不同的端口。
1。 只需“擦除数据”来解决这个问题。
2。 如果不起作用,请转到仿真设备并启用开发人员选项>启用USBdebugging
该解决scheme适用于Windows。
(请参阅@Chris Knight针对Mac / Linux 的解决scheme )
-
启动Windows Powershell:
开始 – >input“powershell” – >按ENTER键
-
运行以下命令: adb devices
PS C:\Users\CJBS>adb devices List of devices attached emulator-5656 host emulator-5652 host 12b80FF443 device
在这种情况下,12b80FF443是我的物理设备,而emulator- *条目是垃圾。
-
Per @Brigham ,“Android检测模拟器的方式是扫描端口5555开始的端口”。 端口号在仿真器名称之后(在这种情况下是5656和5652)。 要检查的端口号是仿真器端口号加1.所以在这种情况下:
5656 + 1 = 5657
5652 + 1 = 5653
那么让我们看看哪个程序正在使用这些端口。 在这种情况下,要检查的端口以“565”开头。 因此,我将search从565开始使用的端口。执行:
netstat -a -n -o | Select-String ":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
- 此输出中的最后一个字段是PID(进程ID) – 在这种情况下,这两个端口都是PID 5944。 那么让我们来看看这个进程ID是什么。 执行:
tasklist /v | Select-String 5944
tasklist /v | Select-String 5944
。 将5944replace为上一个命令的输出:
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
真是一个惊喜。 这是亚行。 正如其他答案所指出的那样,也可能是其他scheme。
- 现在,杀死这个进程ID。 执行
kill 5944
,用前一个命令中的PIDreplace5944。
PS C:\Users\CJBS> kill 5944
- 要确认虚假仿真器已经消失,请重新运行以下命令: 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不能正常工作的过程。
你可以尝试杀死一些奇怪的进程并运行“adb devices”来testing。
它为我工作:
杀死进程名称MONyog.exe
我通过打开我的commandprompt来解决这个问题:
adb kill-server
adb设备
启动后,ADB现在检测到设备/仿真器。
如果您在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
这告诉我,进程号4848(你的可能会不同)仍然在端口5554监听。你现在可以杀死该进程:
sudo kill -9 4848
而幽灵离线设备不再是!
转到Windows任务pipe理器,并结束进程“adb.exe”。 可能有多个同一个进程的实例,请确保结束所有进程。
“擦除用户数据”选项终于解决了我的问题。 每次启动模拟器时擦除用户数据。 这总是适合我! 我使用的是Windows 8 x64,eclipse
你有没有安装蓝色的东西? 如果这样做,它运行的后台进程会创build离线设备“emulator-5554”。
转到任务pipe理器,并结束所有与“Bluestacks”描述的stream程
启用USBdebugging到您的模拟器
- 设置>关于手机>内部版本号>点击7次成为开发者;
- 设置>开发人员选项> USBdebugging。
这就是享受
你有没有尝试删除和重新创build你的AVD? 您可以手动删除AVD文件,方法是转到存储目录(位于用户的/.android/avd子目录中)。
我发现当我使用的adb修订版本不是最近的时候,仿真环境出现“脱机”。 我正确地更新了我的path(并删除了旧的adb版本),并且在“adb kill-server”,“adb devices”上,仿真环境不再变成“离线”。
在那之后,我马上就可以使用“adb shell”了。
尝试这个 …
-
如果运行,closures模拟器。
-
再次启动模拟器并等待其在线。
-
在commandprompt中input命令,然后按ENTER键:adb tcpip 5555
(确保一次只运行一个模拟器。)
-
adb -s emulator-5555 emu kill
-
按Enter键….
-
完成。
-
通过cmd命令“adb devices”检查设备。
如果模拟器已经打开或正在执行,它会告诉你离线。 您可以仔细检查命令行(Ubuntu)并执行:
adb devices
你必须离线看你的模拟器,你必须closures模拟器的运行实例(因为端口将显示为忙),然后你可以运行你的应用程序。 希望这有助于某人。
写吧
adb -e reboot
并与adb开心))
我尝试了一切,但只有这一个适用于我的情况:使用SDKpipe理器,并重新安装系统映像。 Android Studio,点击configuration,SDKpipe理器,启动独立SDKpipe理器,检查所有“Google APIs Intel x86 * System Image”,“Intel x86 Atom * System Image”并安装。 然后重新启动Android工作室。
您可能需要重新configuration并使用AVD Manager擦除虚拟设备,请确保selectx86版本。
确保您的启用ADB集成已标记; 转到工具> Android>启用ADB集成。
如果没有选中,请选中此选项并closures虚拟设备并重新打开。 这对我工作..祝你好运!
我也有同样的问题。 我已经尝试了所有在这里描述的解决scheme,但他们没有帮助我。 然后我删除了Android虚拟设备pipe理器中的所有模拟器,并创build了新的模拟器。 问题出在Android虚拟设备pipe理器的 CPU / ABI系统映像configuration中。 在我系统映像x86
Windows10机器模拟器上,系统映像x86_64
模拟器工作正常。 只要知道这一点
简单地删除和创buildgear avd。它会工作。
在我的情况下,原因是我已经恢复了一个虚拟机内的android-x86。 用Android-x86重新启动虚拟机并重新启动adb服务器解决了问题。
这是因为您的计算机上安装了另一个虚拟设备。 这可能是Bluestacks,因为我也面临类似的问题。 我卸载Bluestacks,然后检查ADB adb devices
它运行良好。
在我的情况下,我没有选中“GPU主机”和它的工作:)
只需擦除AVDpipe理器中的用户数据,然后inputadb kill-server和adb设备。 擦除数据还可以节省系统中的大量内存空间。
我会在这里添加另一个可能的解决scheme,这是我的情况。
我发现有一个名为SpiceWorksEventProcessor的进程正在捆绑端口5555,显然是被adb读为模拟器。 杀死这个过程终于为我删除了那个顽固的仿真器设备。
我不确定这是什么东西,但是如果你有它,这可能是你的离线模拟器的原因。
干杯
在linux或mac上,被阻塞的端口将会仿真器id + 1,所以5555是这样的: sudo lsof -i :5555
会告诉你进程端口的pid(应该是第二列),以杀死它: sudo lsof -i :5555 | awk '{print $2}' | xargs kill
sudo lsof -i :5555 | awk '{print $2}' | xargs kill
那么adb(假)设备将不再显示在列表中
以上所有的答案没有帮助,然后我删除和重新创build模拟器都工作正常
在MAC中,可以使用Activity Monitor实用程序,因为与Linux不同,我们不能在MAC中使用netstat -tulpn命令。 search模拟器的运行实例,通常是qemu-system-i386 。 杀死那个实例,你将看不到任何一个鬼模拟器在运行。
抓取活动监视器实用程序最简单的方法是使用聚光灯search。 只需点击cmd-space并键入Activity Monitor 。