Emulator Androida-5554 offline

144

Mam problem z emulatorem-5554, ciągle mówi mi, że jest offline.

Kiedy robię adb devicesz wiersza poleceń, mówi

emulator-5554 offline

Nawet po ponownym uruchomieniu próbuję wykonać to polecenie i nadal wyświetla komunikat, że jest offline.

Problem polega na tym, że kiedy próbuję zainstalować pliki .apk na emulatorze za pomocą abd install <path>wiersza poleceń, mówi mi, że jest offline, jeśli utworzę inne urządzenie i uruchomię je, a następnie spróbuję zainstalować pliki .apk, mówi: ja masz podłączonych zbyt wiele urządzeń. Innymi słowy, nie mogę zainstalować moich plików .apk.

Jak na świecie mogę się pozbyć tego przeklętego emulatora-5554? Słyszałem, że jeśli wykonasz restart, powinno wyczyścić wszystkie urządzenia, ale to nie wydaje się działać. To tak, jakby był inicjowany podczas uruchamiania komputera. Czy ktoś napotkał ten problem?

Dzięki

hanesjw
źródło
3
Aby ustalić, czy problem dotyczy emulatora, spróbuj wykonać następujące czynności: 1. Otwórz emulator. 2. Otwórz inny emulator. 3. adb devicesuzyskać nazwy emulatorów. 4. Spróbuj zainstalować pakiet APK, wykonując: adb -s NAME_OF_DEVICE install file.apk5. Powiedz nam, co się stanie.
Cristian
Spróbuję, kiedy wrócę do domu (teraz w pracy), nie wiedziałem, że możesz określić urządzenie, na którym chcesz zainstalować. To powinno być naprawdę pomocne. Zaktualizuję za kilka godzin. Dziękuję za odpowiedź!
hanesjw
Jeszcze raz dziękuję za komentarz. Udało mi się zainstalować apk na emulatorze, robiąc to, co powiedziałeś. Odłączony nadal pozostaje na liście moich urządzeń, ale chciałem tylko zainstalować ten plik .apk. Jeszcze raz dziękuję, zadziałało!
hanesjw
Myślę, że to pytanie jest związane z: stackoverflow.com/questions/6013624/ ... Spróbuj rzucić okiem na ten wątek.
bluszcz
To nie odpowiada na twoje pytanie, ale może rozwiązać twój problem - adb -dokreślone urządzenia USB zamiast emulatorów, adb -eemulatorów zamiast urządzeń USB i adb -s NAMEmyślę, że można je wykorzystać do określenia konkretnego urządzenia, chociaż nie jestem pewien, czy ostatnie zawsze działa tak, jak myślisz.
Erhannis

Odpowiedzi:

68

W takim przypadku możesz wykonać wszystkie poniższe czynności, aby mieć pewność, że emulator zacznie ponownie działać:

  1. Przejdź do cmd i wpisz adb kill-server
  2. Przejdź do menedżera zadań i znajdź adbw procesach. Jeśli znajdziesz, kliknij prawym przyciskiem myszy i kliknij koniec drzewa procesu.
  3. W eclipse przejdź do Window> Android Virtual Device Manager , kliknij AVD, który chcesz uruchomić, kliknij Start i odznacz „ Uruchom z migawki ”, a następnie kliknij Uruchom .

Otóż ​​to! To zajmie trochę czasu i powinno rozwiązać twój problem.

Kshitij Mittal
źródło
To również zadziałało dla mnie (zabicie ADB nie rozwiązało mojego problemu w żadnych sytuacjach).
Booger
jak tylko zabiłem to drzewo procesów, lista urządzeń obsługujących adb została wyczyszczona :) zadziałało. <3 dzięki
DeathRs
10
W Android Studio, zmiana opcji rozruchu urządzenia wirtualnego z szybkiego rozruchu na zimny działa dla mnie.
eldes
Gdzie mogę znaleźć ustawienie „Uruchom z migawki” w Menedżerze urządzeń Android, gdy wykonuję je z programu Visual Studio 2019?
jacktric
112

1. Po prostu „Wyczyść dane”, aby rozwiązać ten problem.

wprowadź opis obrazu tutaj

2. Jeśli to nie zadziała, przejdź do emulowanego urządzenia i włącz opcje programisty> włącz debugowanie USB

Xakiru
źródło
1
Odinstalowanie aplikacji z emulatora załatwiło sprawę. Ale to ten sam pomysł, co wymazywanie danych
James
1
Pomogło to w połączeniu z „Cold Boot now” tuż pod „Wipe Data”.
S. Gissel
tks tak bardzo, że uratowałeś mi dzień
Manh Nguyen
28

Sposób, w jaki Android wykrywa emulatory, polega na skanowaniu portów, zaczynając od portu 5555.

Numer, który widzisz na adb devicesliście (w twoim przypadku 5554) będzie o jeden mniejszy niż port, który adb znajduje otwarty.

Prawdopodobnie masz uruchomiony proces, który nasłuchuje na porcie 5555. Aby pozbyć się urządzenia „offline”, musisz znaleźć tę aplikację i zamknąć ją lub ponownie skonfigurować, aby nasłuchiwała na innym porcie.

Brigham
źródło
Pytanie dotyczyło ADB. Numery portów ADB zaczynają się od 5555.
Brigham
3
„Prawdopodobnie masz uruchomiony proces nasłuchujący na porcie 5555”. To naprawdę pomogło, ponieważ uruchomiliśmy inny serwer na tym porcie i całkowicie o nim zapomnieliśmy!
abhijit
Zawsze zaczynał się na 5554 - na wszystkich moich komputerach (domowych i służbowych) ... i zawsze jest NAWET (5554, 5556, 5558, 5560, ...) podczas korzystania z wielu emulatorów.
Phantômaxx
Frank, jak myślisz, dlaczego oni wszyscy są równi? Dzieje się tak, ponieważ Android używa również nieparzystych portów pomiędzy nimi.
Brigham
To też mi pomogło! Miałem otwarty port na 5555, który pojawia się jako emulator 5554 (?). Każdy, kto już wypróbował niedziałające odpowiedzi w stylu „zrestartuj serwer”, powinien kontynuować i skanować porty swojego lokalnego hosta. Zakładałem, że ADB będzie używać urządzeń USB bardziej bezpośrednio, nie patrząc na moje lokalne porty i nie zakładając, że jest tam emulator, nawet nie sprawdzając protokołu.
mvr
24

To rozwiązanie jest przeznaczone dla systemu Windows.

(Zobacz rozwiązanie @Chris Knight dla Mac / Linux )

  1. Uruchom Windows Powershell:

    Start -> wpisz „powershell” -> naciśnij ENTER

  2. Uruchom następujące polecenie: urządzenia adb


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

W tym przypadku 12b80FF443 jest moim fizycznym urządzeniem, a wpisy emulatora- * są śmieciami.

  1. Per @Brigham : „Sposób, w jaki Android wykrywa emulatory, polega na skanowaniu portów zaczynając od portu 5555”. Numer portu jest podany po nazwie emulatora (w tym przypadku 5656 i 5652). Numer portu do sprawdzenia to numer portu emulatora plus 1. W tym przypadku: -

    5656 + 1 = 5657

    5652 + 1 = 5653

    Zobaczmy więc, który program używa tych portów. W tym przypadku porty do sprawdzenia zaczynają się od „565”. Dlatego wyszukam używane porty zaczynające się od 565. Wykonaj: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. Ostatnim polem tego wyjścia jest PID (identyfikator procesu) - w tym przypadku jest to PID 5944 dla obu tych dwóch portów. Zobaczmy więc, jaki jest ten identyfikator procesu. Wykonanie: tasklist /v | Select-String 5944. Zastąp 5944 wynikiem poprzedniego polecenia:

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

Co za niespodzianka. To jest ADB. Jak zauważono w innych odpowiedziach, mogą to być również inne programy.

  1. Teraz po prostu zabij ten identyfikator procesu. Wykonaj kill 5944, zastępując 5944 numerem PID z poprzedniego polecenia.

PS C:\Users\CJBS> kill 5944
  1. Aby potwierdzić, że fałszywy emulator zniknął, uruchom ponownie następujące polecenie: urządzenia adb

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 uruchamia się ponownie (tak jak poprzednio został zabity) i nie wykrywa więcej fałszywych emulatorów.

CJBS
źródło
11

W Menedżerze AVD wypróbuj opcję „Zimny ​​rozruch teraz” w menu rozwijanym. U mnie zadziałało!

Paulo Taylor
źródło
1
Jest to prawdopodobnie pierwsza rzecz, którą ludzie powinni spróbować, zanim przejdą do tych zbyt skomplikowanych innych rozwiązań ...
ralfoide
10

Jeśli korzystasz z systemu Linux lub Mac i zakładając, że urządzenie offline to „emulator-5554”, możesz uruchomić następujące czynności:

netstat -tulpn|grep 5554

Co daje następujący wynik:

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

To mówi mi, że identyfikator procesu 4848 (twój prawdopodobnie będzie inny) nadal nasłuchuje na porcie 5554. Możesz teraz zabić ten proces za pomocą:

sudo kill -9 4848

a duch urządzenia offline już nie istnieje!

Chris Knight
źródło
9

W końcu rozwiązałem ten problem, musiałem przejść do opcji programisty z Ustawień w Emulatorze , potem trochę przewinąłem, włączyłem debugowanie USB. Natychmiast moje urządzenie zostało rozpoznane online i nie miałem już do czynienia z tym problemem. Próbowałem ponownie uruchomić studio i emulator Androida , zabijając proces adb , ale te nie działały.

Shamsul Arefin Sajib
źródło
1
jesteś bohaterem!
Felipe Castilhos
Cześć @Shamsul, czy możesz opisać, jak uzyskać dostęp do opcji programisty z poziomu ustawień w emulatorze? Zakładam, że masz na myśli AVD Manager w Android Studio. Mam ten sam problem opisany w tym wątku i wypróbowałem wszystkie zasugerowane rzeczy oprócz twojej sugestii. Nie widzę żadnych opcji programisty dla emulatora w menedżerze AVD.
Eddie
Cześć Eddie, zwykła procedura włączania opcji programisty jest taka sama dla emulatora i prawdziwych urządzeń. Znajdź numer kompilacji w informacjach o oprogramowaniu, dotknij go wielokrotnie, po może 7-10 dotknięciach zobaczysz, że opcja programisty została włączona.
Shamsul Arefin Sajib
8

Ja też miałem ten sam problem. Wypróbowałem wszystkie opisane tutaj rozwiązania, ale mi nie pomogły. Następnie usunąłem wszystkie emulatory w Android Virtual Device Manager i utworzyłem nowe. Problem dotyczył konfiguracji obrazu systemu CPU / ABI w Android Virtual Device Manager . Na moim emulatorze maszyny Windows10 z obrazem systemu x86zawsze jest w trybie offline, gdzie emulator z obrazem systemu x86_64działa prawidłowo, zgodnie z oczekiwaniami. Po prostu bądź tego świadomy

Volodymyr
źródło
w moim przypadku obrazy systemu x86 windows 10, po prostu muszę usunąć cały emulator, a następnie je odtworzyć
Dika
1
Dziękuję bardzo, spędziłem tyle czasu próbując to zadziałać i to był mój problem
Brendan Samek
To samo tutaj, ale na Windows 7.
Viktor Brešan
7

W moim przypadku znalazłem proces, który sprawia, że ​​adb nie działa dobrze.
Możesz spróbować zabić jakiś dziwny proces i uruchomić „urządzenia adb” w celu przetestowania.

U mnie zadziałało:
zabij proces o nazwie MONyog.exe

Ryan Ou
źródło
7

Rozwiązałem to, otwierając mój wiersz polecenia:

adb kill-server

urządzenia adb

Po uruchomieniu ADB wykrywa teraz urządzenie / emulator.

DagW
źródło
6

Tylko napisz

adb -e reboot

i bądź zadowolony z adb))

oleg gutov
źródło
To każe ADB zrestartować emulator. Nie może działać, jeśli jest oznaczony jako offline.
shkschneider
działa, jeśli wcześniej wykonywałeś rm -Rf ~/.androidczyszczenie urządzeń offline. Najlepsze polecenie i tylko jedno, aby rozwiązać mój problem. Nie, kill-serveralbo start-serverzałatwił sprawę.
Victor R. Oliveira
5

Włącz debugowanie USB w swoim emulatorze

  1. Ustawienia> Informacje o telefonie> Numer kompilacji> Stuknij 7 razy, aby zostać programistą;
  2. Ustawienia> Opcje programisty> Debugowanie USB.

To się cieszy

Dhaval Jivani
źródło
Pomogło mi ponowne włączenie debugowania USB (wyłączenie i włączenie)
Maxim Mazurok
4

Opcja „wyczyść dane użytkownika” ostatecznie rozwiązała mój problem. wystarczy wyczyścić dane użytkownika za każdym razem, gdy uruchamiasz emulator. To zawsze działa dla mnie! Używam Windows 8 x64, Eclipse

Sunil Kumar
źródło
wypróbowałem wszystko powyżej, ale działałem tylko przy czyszczeniu danych użytkownika. dzięki
Sai Ram
@SaiRam, nie próbowałeś wszystkiego powyżej, ponieważ ta wskazówka została powtórzona w kilku odpowiedziach. Również Cold Boot Nowpomaga.
CoolMind
@SaiRam, przepraszam. :) Dzięki.
CoolMind
4

Z listy menedżerów AVD w menu rozwijanym akcji: Cold Boot Now

uruchamia go ponownie bez bólu powyżej.

Alp Altunel
źródło
2

Czy próbowałeś usunąć i odtworzyć swój AVD? Możesz ręcznie usunąć pliki AVD, przechodząc do katalogu, w którym są przechowywane (w podkatalogu /.android/avd użytkownika).

JRL
źródło
Cześć, dzięki za odpowiedź. Właściwie to próbowałem. Wciąż tam. Kusi mnie, aby po prostu ponownie zainstalować wszystko.
hanesjw
2

Przejdź do menedżera zadań systemu Windows i zakończ proces „adb.exe”. Może istnieć więcej niż 1 wystąpienie tego samego procesu, upewnij się, że wszystkie zostały zakończone.

Rohit
źródło
1
A co z „adb kill-server”?
DagW,
2

Czy masz zainstalowane bluestacks? Jeśli to zrobisz, uruchomione w tle procesy utworzą urządzenie offline „emulator-5554”.

Przejdź do menedżera zadań i zakończ wszystkie procesy opisem „Bluestacks”

cnfw
źródło
2

na Linuksie lub Macu zablokowany port będzie emulator-id + 1, więc 5555: sudo lsof -i :5555 pokaże ci pid procesu, który pobiera port (powinna być druga kolumna), więc aby go zabić: sudo lsof -i :5555 | awk '{print $2}' | xargs kill

wtedy urządzenia adb (fałszywe) nie będą już wyświetlane na liście

Micheal Kris
źródło
2

W moim przypadku emulator działał z Oreo i niższym, ale nie z Pie i wszystko, czego próbowałem, wydawało się nie mieć efektu. Ostatecznie zadziałało zaktualizowanie emulatora do najnowszej wersji (wersja 28).

Pulsejet
źródło
ja też ... dość denerwujące
Analizer
2

W moim przypadku zacząłem w 'Cold Boot Now' i kliknąłem Message, aby zezwolić na połączenie.

Marcus Menezes
źródło
2

otwórz emulator,

ustawienie -> o emulowanym urządzeniu -> klikaj wielokrotnie Numer kompilacji -> otwórz opcje programisty -> otwórz debugowanie USB

zhiqiu lin
źródło
Problem w tym, że emulator ma po prostu czarny ekran. Możesz to zrobić tylko wtedy, gdy masz dostęp do ustawień.
Jeanne vie
1

Zauważyłem, że środowisko emulacji pojawia się jako „offline”, gdy wersja adb, której używam, nie była nowa. Poprawnie zaktualizowałem moje ścieżki (i usunąłem starą wersję adb) i po „adb kill-server”, „adb devices”, środowisko emulacji nie było już „offline”.

Od razu mogłem użyć "powłoki adb".

Keitai Otaku
źródło
1

Spróbuj tego ...

  1. Zamknij emulator, jeśli jest uruchomiony.

  2. Uruchom ponownie Emulator i poczekaj, aż pojawi się online.

  3. wpisz Command w wierszu polecenia i naciśnij klawisz ENTER: adb tcpip 5555

(Upewnij się, że w danym momencie działa tylko jeden emulator).

  1. adb -s emulator-5555 emu kill

  2. Naciśnij klawisz Enter ....

  3. Gotowe.

  4. sprawdź urządzenia za pomocą polecenia „urządzenia adb” w cmd.

WonderSoftwares
źródło
1

Jeśli emulator jest już otwarty lub działa, poinformuje Cię, że jest offline. Możesz dwukrotnie sprawdzić w wierszu poleceń (Ubuntu) i wykonać:

 adb devices

Musisz zobaczyć swój emulator w trybie offline, musisz zamknąć działającą instancję emulatora (ponieważ port będzie wyświetlany jako zajęty), a następnie możesz uruchomić aplikację. Mam nadzieję, że to komuś pomoże.

G Jeny Ramirez
źródło
1

Próbowałem wszystkiego, ale tylko ten działa w moim przypadku: użyj menedżera SDK i ponownie zainstaluj obraz systemu. Android Studio, kliknij Configure, SDK Manager, Launch Standalone SDK Manager, zaznacz wszystkie „Google APIs Intel x86 * System Image”, „Intel x86 Atom * System Image” i zainstaluj. Następnie uruchom ponownie Android Studio.

Być może będziesz musiał ponownie skonfigurować i wyczyścić urządzenie wirtualne za pomocą AVD Manager, upewnij się, że wybrałeś wersję x86.

EricF
źródło
U mnie działała wersja x86_64, inne nie działały
hiddeneyes02
1

Upewnij się, że włączona integracja ADB jest zaznaczona; przejdź do Narzędzia> Android> Włącz integrację ADB.

jeśli nie jest zaznaczone, zaznacz tę opcję, zamknij urządzenie wirtualne i otwórz je ponownie. to zadziałało dla mnie .. powodzenia !!

Leo Santana
źródło
1

Miałem ten sam problem z moim urządzeniem wirtualnym. Problem wynika z obrazu Oreo urządzeń wirtualnych, które mają zintegrowany Sklep Play. Aby rozwiązać ten problem, zainstalowałem nowe urządzenie bez zintegrowanego Sklepu Play i wszystko było w porządku.

Mam nadzieję, że to pomoże, pa

furdu
źródło
co za dziwna sytuacja, ale mnie też naprawiła.
reidisaki
1

Zobacz emulator-5554 nieautoryzowany dla urządzeń adb . Na emulatorze API 29 uruchomiłem adb devicespolecenie i otrzymałem emulator-5554 unauthorizedwiadomość. Następnie stworzyłem nowe avdurządzenie z Google APIsobrazu (w moim przypadku Q, x86), a nie z Google Play.

CoolMind
źródło
0

Po prostu usuń i ponownie utwórz gear avd. To zadziała.

Gagandeep Singh
źródło
0

W moim przypadku przyczyną było wznowienie pracy maszyny wirtualnej z systemem Android-x86. Ponowne uruchomienie maszyny wirtualnej z systemem Android-x86 i ponowne uruchomienie serwera adb rozwiązało problem.

Ullrich
źródło