[android] Android 에뮬레이터 -5554 오프라인

에뮬레이터 -5554에 문제가 있으며 오프라인 상태임을 계속 알려줍니다.

내가 adb devices명령 줄에서 할 때

emulator-5554 offline

새로 시작한 후에도 해당 명령을 시도해도 여전히 오프라인 상태입니다.

문제는 abd install <path>명령 프롬프트에서 .apk 파일을 에뮬레이터에 설치하려고 할 때 오프라인 상태임을 알려줍니다. 다른 장치를 만들어서 실행하면 .apk 파일을 설치하려고하면 너무 많은 장치가 연결되어 있습니다. 즉, .apk 파일을 설치할 수 없습니다.

세상에서 어떻게 그 빌어 먹을 에뮬레이터 -5554를 제거 할 수 있습니까? 다시 시작하면 모든 장치가 지워 져야하지만 작동하지 않는 것 같습니다. 컴퓨터가 시작될 때 초기화되는 것과 같습니다. 누구 든지이 문제에 부딪 쳤습니까?

감사



답변

이 경우 에뮬레이터가 다시 작동하기 시작하기 위해 다음을 모두 수행 할 수 있습니다.

  1. cmd로 이동하여 다음을 입력하십시오. adb kill-server
  2. 작업 관리자로 이동하여 찾기 adb 프로세스를 . 하나를 찾으면 마우스 오른쪽 버튼으로 클릭하고 프로세스 트리 종료를 클릭하십시오.
  3. 이클립스에서 Window> Android Virtual Device Manager 로 이동하여 시작하려는 AVD를 클릭하고 시작 을 클릭 한 다음 “Start From Snapshot “을 선택 취소 한 다음 시작을 클릭하십시오.

그게 다야! 시간이 걸리며 문제를 해결해야합니다.


답변

1 . 이 문제를 해결하려면 “데이터 삭제”만하면됩니다.

여기에 이미지 설명을 입력하십시오

2. 작동하지 않으면 에뮬레이트 된 장치로 이동하여 개발자 옵션 활성화> USB 디버깅 활성화


답변

Android가 에뮬레이터를 감지하는 방법은 포트 5555에서 시작하는 포트를 스캔하는 것입니다.

당신이 볼 수있는 번호 adb devices목록에 (귀하의 경우 5554)는 adb가 열려있는 포트보다 하나 적습니다.

포트 5555에서 수신 대기중인 프로세스가있을 수 있습니다. “오프라인”장치를 제거하려면 해당 응용 프로그램을 찾아서 닫거나 다른 포트를 청취하도록 재구성해야합니다.


답변

이 솔루션은 Windows 용입니다.

( Mac / Linux@Chris Knight 솔루션 참조 )

  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은 실제 장치이며 에뮬레이터 * 항목은 가비지입니다.

  1. @Brigham , “안드로이드 에뮬레이터를 감지하는 방식은 포트 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

놀랐는 걸. ADB입니다. 다른 답변에서 언급했듯이 다른 프로그램 일 수도 있습니다.

  1. 이제이 프로세스 ID를 종료하십시오. 실행 kill 5944하여 이전 명령에서 5944를 PID로 바꿉니다.

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는 이전에 종료 된대로 다시 시작하고 더 이상 가짜 에뮬레이터를 감지하지 않습니다.


답변

마침내이 문제를 해결 하고 에뮬레이터설정 에서 개발자 옵션 으로 이동 한 다음 약간 아래로 스크롤하여 USB 디버깅을 켭니다. 즉시 내 장치가 온라인으로 인식되어 더 이상 그 문제에 직면하지 않았습니다. 안드로이드 스튜디오와 에뮬레이터를 다시 시작 하여 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

이는 프로세스 ID 4848 (사용자가 다를 수 있음)이 여전히 포트 5554에서 수신 대기 중임을 나타냅니다. 이제 다음을 사용하여 해당 프로세스를 종료 할 수 있습니다.

sudo kill -9 4848

유령 오프라인 장치는 더 이상 없습니다!


답변

AVD Manager에서 드롭 다운의 “Cold Boot Now”옵션을 사용해보십시오. 그것은 나를 위해 일했다!