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


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.


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


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.


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.


11

W Menedżerze AVD wypróbuj opcję „Zimny ​​rozruch teraz” w menu rozwijanym. U mnie zadziałał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!


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.


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


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


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.


6

Tylko napisz

adb -e reboot

i bądź zadowolony z adb))


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


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


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.


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).


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.


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”


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


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).


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.


2

otwórz emulator,

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


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".


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.


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.


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.


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 !!


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


co za dziwna sytuacja, ale mnie też naprawiła.
reidisaki



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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.