Jak rozwiązać problem z komunikatem „Oczekiwanie na debugera”?

95

Mam HTC Comet podłączony do Eclipse za pomocą SDK 2.2. Robię kompilację do debugowania - aplikacja nie działa; chociaż jest instalowany na urządzeniu. Na urządzeniu pojawia się to okno komunikatu na ekranie Comet

Oczekiwanie na
aplikację debugera HunyDew (proces com.airvine.hunydew) czeka na dołączenie debugera.
[Wymuś zamknięcie]

Natomiast w konsoli Eclipse otrzymuję taki zestaw komunikatów

[2010-12-07 01:42:29 - hunydewprj] Android Launch!  
[2010-12-07 01:42:29 - hunydewprj] adb is running normally.  
[2010-12-07 01:42:29 - hunydewprj] Performing com.airvine.hunydew.HunyDewAAStartsHere activity launch  
[2010-12-07 01:42:47 - hunydewprj] Application already deployed. No need to reinstall.  
[2010-12-07 01:42:47 - hunydewprj] Starting activity com.airvine.hunydew.HunyDewAAStartsHere on device 308730C861BC  
[2010-12-07 01:42:49 - hunydewprj] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.airvine.hunydew/.HunyDewAAStartsHere }  
[2010-12-07 01:42:49 - hunydewprj] Attempting to connect debugger to 'com.airvine.hunydew' on port 8601  
[2010-12-07 01:43:09 - hunydewprj] Launch error: Failed to connect to remote VM. Connection timed out.  

Aplikacja działa dobrze w Emulatorze - proszę o pomoc - czego tu brakuje? Jakieś wskazówki / sugestie? Dzięki

Abhi
źródło
2
Czy masz w telefonie włączoną opcję „Debugowanie USB”? Ustawienia - Aplikacje - Rozwój - Debugowanie USB.
Jesus Oliva,
Ta opcja została ustawiona w telefonie.
Abhi,
Mam to i pamiętam, że zniknęło po kilku sekundach, a następnie aplikacja w końcu się uruchomiła. Czy to rozumiesz?
chaimp
16
Dzieje się tak często, jeśli masz więcej niż 1 instancję Eclipse… jedynym rozwiązaniem, jakie znalazłem, jest zamknięcie innych instancji; jeśli ktoś ma lepsze rozwiązanie - pomóż.
nikib3ro
U mnie poprawka opisana poniżej załatwiła sprawę. martinahrer.at/2009/04/16/…

Odpowiedzi:

68

Niektóre urządzenia zezwalają debugerowi na podłączenie tylko wtedy, gdy aplikacja ma uprawnienie android.permission.SET_DEBUG_APP ustawione w pliku manifestu:

<manifest>
  <uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission>
</manifest> 
Iain
źródło
8
Tego brakowało Dodałem go - i zachowanie pozostało takie samo - nie działa
Abhi
Czy Twój telefon jest dostępny na porcie 8601? Jeśli w eclipse przejdziesz do menu Okno -> Pokaż widok -> Inne -> Android -> Urządzenia, czy ten widok pokazuje, że Twoja aplikacja nasłuchuje na tym porcie?
Iain
tak, telefon wydaje się być dostępny na porcie 8601 - Jeśli zrobię zrzut ekranu (urządzenia) z Eclipse - działa.
Abhi,
23
Miałem ten sam problem, z wyjątkiem tego, że miałem do czynienia z emulatorem Androida. Doszedłem do wniosku, że jeśli uśpisz komputer, gdy Eclipse lub emulator są uruchomione, zepsuje to połączenie między nimi. Mój problem zniknął po ponownym uruchomieniu zarówno emulatora, jak i Eclipse.
Vivek
1
Wielka pomoc, właściwie poszedłem za pomocą Viveksa. Nigdy nie dodałem tego wiersza do manifestu, ale pozwoliłem mojej maszynie zasnąć. Po ponownym uruchomieniu zarówno emulatora, jak i Eclipse, byłem gotowy do pracy. dziękuję
wired00
52

Okno dialogowe oczekujące na debuger jest wyświetlane, jeśli tworzysz aplikację do debugowania lub gdzieś w kodzie źródłowym, wywołałeś Debug.waitingForDebugger ();

W Android Studio 2.0 i nowszych wersjach istnieje opcja Dołącz debuger do procesu Android. Jest to ostatnia pozycja w menu Uruchom.

Zrzut ekranu przedstawiający opcje menu Uruchom w Android Studio

Victor Mwenda
źródło
Dzięki - to był dokładnie mój problem - Android N - Google Pixel - IntelliJ
bsautner
3
Wcześniej nigdy nie musiałem tego robić, ale teraz muszę. Musiałem przypadkowo zmienić ustawienie. Ale jaki?
Eurig Jones
Dziękuję, to jest pomoc
eigenfield
19

Nie jestem pewien, czy tego właśnie szukasz, ale spróbuj wpisać:

android:debuggable="true"

w tagu aplikacji w AndroidManifest.xml

Prateek Jain
źródło
Dziękuję - tak, mam to -
Abhi
13
To nie ma nic wspólnego z jego problemem, Eclipse automatycznie włącza debugowanie po uruchomieniu w trybie debugowania. NIE chcesz dodawać tego do swojego manifestu, chyba że wyraźnie chcesz, aby kompilacje wydania wyświetlały informacje o debugowaniu.
Justin Buser
Usunąłem tę linię: android: debuggable = "false" i teraz działa doskonale.
Badamchi
10

Mam ten problem od dawna, że ​​nie mogę połączyć mojego emulatora Androida lub urządzenia z debugerem, gdy zarówno konsola, jak i emulator wyświetlały oczekiwanie na połączenie z debugerem .

Konfiguracja debugowania wewnątrz zaćmienia również bardzo mnie myliła, ale dzisiaj rozwiązałem ten problem, wykonując następujące kroki:

Jeśli chcesz debugować projekt systemu Android, na przykład mypro . kliknij go prawym przyciskiem myszy w "Package Explorer". Then choose "Debug as"-->"Android Application".

Następnie emulator może zatrzymać się na „Oczekiwaniu na połączenie z debugerem” (lub czymś podobnym).

Następnie musisz samodzielnie połączyć się z debugerem, klikając „DDMS”, aby otworzyć perspektywę DDMS, a następnie kliknąć kartę „Urządzenia” .

Następnie możesz zobaczyć listę procesów uruchomionych na emulatorze lub urządzeniu.

Kliknij dwukrotnie ten, który debugujesz, a następnie zmień perspektywę debugowania, zobaczysz, że debugger jest podłączony i możesz debugować swój program. Tak rozwiązałem ten problem.

Nawiasem mówiąc, mój system operacyjny to Win7 32-bitowy. Wersja Eclipse to Helios Service Release 2. Android SDK to rev. 16 i narzędzia platformy „10.

Aktualizacja.

Odkryłem, że jest to problem z moją konfiguracją TCP / IP. Debugera nie można podłączyć, gdy przypisuję statyczny adres IP (w celu uzyskania dostępu do Internetu).

Dlatego za każdym razem, gdy debugger nie może się połączyć, zawsze wykonuję następujące kroki:

1. zamknij bieżące okno zaćmienia.

2. zmień konfigurację adresu IP na dynamiczną , czyli otrzymanie adresu IP przez DHCP .

3. ponownie otwórz zaćmienie.

wtedy debugger może zostać podłączony. Pomyślałem, że może to być problem wewnętrznego mechanizmu debuggera java, który korzysta z połączenia przez gniazdo.

Stevens
źródło
4
„2. zmień konfigurację adresu IP na dynamiczny, oznacza to uzyskanie adresu IP przez DHCP”. Jak Ty to robisz? Wyjaśnij proszę!
Ksice,
@Ksice Cześć, to znaczy „Pobieraj adres IP dynamicznie”. Właściwie wewnętrzny mechanizm debuggera Androida oparty jest na protokole TCP / IP, więc kiedy używasz statycznego adresu IP, wydaje się, że system nie może połączyć twojego urządzenia końcowego lub emulatora z debuggerem
Stevens
10

Dostaję to, jeśli przełączę kabel USB na inny port na moim komputerze, dziwne, ale działa, gdy przełączę go z powrotem. Myślę też, że mam to, gdy było uruchomione inne urządzenie lub emulator w tym samym czasie lub dwa wystąpienia Eclipse są otwarte.

Andy
źródło
To samo dla mnie, nie wyglądało na to, żebym miał otwarte dwa wystąpienia Eclipse, ale pokazała je karta Procesy Menedżera zadań systemu Windows.
Andrew Martin
Tak, masz rację, miałem dwa wystąpienia zaćmienia. Po zamknięciu drugiego wystąpienia zaćmienia problem został rozwiązany.
Signcodeindie,
Jeśli wypróbowywałeś programowanie dla Androida IntelliJ IDEA, może się to również zdarzyć, jeśli masz jednocześnie otwarte Eclipse i IntelliJ.
SilithCrowe
Udało mi się znaleźć w tej sytuacji dwie instancje IntelliJ IDEA debugujące dwie aplikacje w tym samym czasie. Potem jedna z aplikacji przestała się uruchamiać i powtarzała „Oczekiwanie na debugera”. Na koniec naprawiono to, odłączając kabel USB i wyłączając urządzenie i ponownie włączając.
RenniePet
4

Dla tych, którzy dostają to irytujące zachowanie w 4.2.2, musisz odznaczyć ustawienie „czekaj na debugger” w opcjach programisty. Oczywiście te opcje zostały ukryte przez Google i musisz zrobić podstępną sztuczkę, aby pojawiły się z powrotem. Ustawiłem je, zanim zniknęły, i nie mogłem ich znaleźć za całe życie.

Ta strona wyjaśnia procedurę

Jan
źródło
możemy przywrócić te opcje, chyba to rozgryzłem. ale dzięki, to pomogło.
stack_ved,
3

Uruchamiając Android Studio, napotkałem ten problem i po wypróbowaniu różnych środków, ponowne uruchomienie Android Studio okazało się tym, co rozwiązało problem.

Thomas W.
źródło
3

Moim rozwiązaniem jest użycie Dalvik Debug Monitor. Czasami obok procesu pojawia się czerwony lub zielony błąd. Kliknij urządzenie, na które próbujesz załadować. Wybierz kartę Działania i zresetuj adb. To zwykle dołącza debugger za mnie. Uważam, że debugowanie za pomocą tego monitora działa lepiej niż używanie Logcat wtyczki Android Eclipse.

karol
źródło
Mogę potwierdzić, że zresetowanie ADB (za pośrednictwem zakładki Akcje), tak jak opisałeś, rozwiązało ten problem. To jest debugowanie za pomocą emulatora z systemem 4.0.
ubzack,
1
Czy możesz wyjaśnić, co masz na myśli, mówiąc: „Moim rozwiązaniem jest użycie Dalvik Debug Monitor. Czasami obok procesu pojawia się czerwony lub zielony błąd. Kliknij urządzenie, na które próbujesz załadować. Wybierz kartę Działania i zresetuj adb. ” Jakie kroki należy wykonać, aby to zrobić?
Regis_AG
2

Zamykanie emulatora i zamykanie zaćmienia. Ponowne otwarcie Eclipse i uruchomienie symulatora zadziałało dla mnie.

Kluczową rzeczą, na którą należy zwrócić uwagę, jest panel Urządzenia w Eclipse. Jeśli uruchomisz emulator lub urządzenie i pojawi się na liście nazw urządzeń, ale wyświetli [null], a pod nim nie są wyświetlane żadne uruchomione procesy, to nie będzie działać poprawnie po załadowaniu do niego aplikacji.

Jeśli pojawi się nazwa urządzenia i jest online, wydaje się, że wszystko działa płynnie.

Nie wiem jednak, dlaczego to nie działa cały czas.

CQM
źródło
2

W moim przypadku problem jest spowodowany połączeniem adb z innym urządzeniem.

Jeśli kilka urządzeń jest podłączonych do komputera, usuń inne urządzenia z wyjątkiem wymaganego.

gilchris
źródło
2

W końcu przechodzę do perspektywy „Debugowania”.

Następnie w ramce „Debugowanie” znajduje się lista debugowania lub lista uruchomiona.

Musisz zdecydować, który z nich jest twoim obecnym, który ma ten problem (Oczekiwanie na debugowanie ...)

Następnie kliknij prawym przyciskiem myszy i wybierz „Zakończ i usuń”.

Potem znowu próbujesz biec. I to ostrzeżenie zniknie.

Apisarn Sasuk
źródło
2

Rozwiązałem ten problem w ten sposób:

Idź do menu Uruchom ====> kliknij Edytuj konfiguracje ====> Micellaneous i ostatecznie odznacz opcję Pomiń instalację, jeśli APK nie zmienił się

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

Marco Aurelio Silva
źródło
2

Ponowne uruchomienie telefonu było dla mnie rozwiązaniem.

Stoica Mircea
źródło
1

Jeśli środowisko programistyczne to Windows, upewnij się, że sterowniki USB są poprawnie zainstalowane.

Jednym ze sposobów upewnienia się, że sterowniki USB są poprawnie zainstalowane, jest pobranie instalatora PDANet dla Windows i pozwolenie na zainstalowanie sterowników USB.

Możesz znaleźć stronę PDANet tutaj.

JimR
źródło
Mogłem go uruchomić bez konieczności pobierania PDANetu. Po prostu przerobiłem wszystko, w tym odinstalowanie poprzedniej aplikacji - za pomocą deinstalacji adb (poprzednio używałem apletu ustawień do odinstalowania aplikacji). Dziękuję za wiadomość o PDANet. Jak dotąd sugestia Laina była jedyną, której mi brakowało - ale jego odpowiedź brzmiała, zanim zaoferowano nagrodę. Podoba mi się również twoja odpowiedź - mam nadzieję, że ktoś inny zagłosuje na twoją odpowiedź - jeśli tak się stanie, ty i Lain możecie podzielić się nagrodą - system nie pozwala mi podzielić nagrody.
Abhi
Nie ma to nic wspólnego z jego problemem, sterowniki są już wyraźnie zainstalowane, ponieważ wyjście konsoli pokazuje, że ADB odpytuje urządzenie i znajduje aplikację, która jest zainstalowana już wtedy, gdy ją uruchamia.
Justin Buser
1

Spróbowałbym połączyć się z telefonem samodzielnie z ddms bez Eclipse. Możesz uruchomić emulator wewnątrz zaćmienia, którego nie widzisz lub masz inne problemy z Eclipse.

Po prostu uruchom ddms z wiersza poleceń i sprawdź, czy urządzenie się pojawi i możesz się z nim połączyć.

Możesz również sprawdzić, czy pojawia się po uruchomieniu adb devicesi zobaczyć, czy Twój telefon jest na liście (i może mieć coś innego ...)

Manfred Moser
źródło
1

Mam ten sam problem, wiem, że nie uruchamiałem żadnych innych instancji i mogłem to zobaczyć adb devices. Właśnie ponownie uruchomiłem zaćmienie i zadziałało.

b-ryce
źródło
1

Ponowne uruchomienie komputera było jedyną rzeczą, która działała dla mnie. Zadziałało, gdy miałem ten problem z telefonem z Androidem 2.2, a także tabletem z Androidem 3.1.

Panie Bungle
źródło
U mnie zadziałało - może to zbieg okoliczności, ale czekała aktualizacja systemu Windows.
OldCurmudgeon
0

Dzisiaj napotkałem ten problem. Po spędzeniu większości dnia próbując to naprawić, jedyną rzeczą, która zakończyła się pracą, było utworzenie nowego obszaru roboczego i zaimportowanie do niego mojego projektu. Mam nadzieję, że to pomoże komuś uniknąć wszystkich kłopotów, przez które przeszedłem.

JP2014
źródło
0

Napotykam również ten problem. W moim środowisku używam Tomcata jako serwera i Androida jako klienta. Znalazłem, jeśli Tomcat jest uruchomiony, ten błąd: „Błąd uruchamiania: nie można połączyć się ze zdalną maszyną wirtualną. Przekroczono limit czasu połączenia”. wystąpi. Jeśli tomcat nie jest uruchomiony, adb działa dobrze.

Daniel
źródło
0

Wypróbowałem wszystkie powyższe rozwiązania, czasami rozwiązuje to problem, ale czasami zdarzało mi się, że utknąłem w oknie komunikatu „Oczekiwanie na dołączenie debugera”.

Ostatnim rozwiązaniem w moim przypadku było odłączenie wszystkich urządzeń z Androidem oprócz tego, na którym chcę debugować. Nie wiem, który z nich jest winowajcą: Nexus 7 z JB 4.2, HTC One X z ICS, HTC Desire S z Gingerbread, czy kombinacja 3, ale jak tylko mam podłączone tylko jedno urządzenie , działa gładko jak jedwab.

Alexis Pigeon
źródło
0

Użyłem Menedżera zadań, aby zabić adb.exe, aby rozwiązać ten problem. Adb.exe uruchomi się automatycznie po zabiciu.

Usunięcie adb.exe rozwiązało dotychczas wiele problemów związanych z debugowaniem i emulatorami.

Hong
źródło
0

Dla użytkowników Android Studio pierwszy raz napotkałem ten problem podczas próby uruchomienia projektu gołej kości tuż po zaktualizowaniu mojej lokalizacji jdk . Więc natknąłem się na ten post. W moim przypadku wystarczyło tylko Build-> Clean Project .

Nielegalny argument
źródło
0

Miałem również ten sam problem podczas korzystania z Android Studio i GenyMotion. Jestem w stanie rozwiązać ten problem, zatrzymując program i wznawiając go ponownie po wyświetleniu komunikatu „Oczekiwanie na debugera”. Może działać również podczas korzystania z innych IDE i emulatorów.wprowadź opis obrazu tutaj

Suresh Subedi
źródło
0

Android Studio 1.2.2 w systemie Mac OS 10.10 Ten sam problem, co zgłaszali inni. Zamknąłem Android Studio, a następnie sprawdziłem z linii poleceń w terminalu:

ps -efw | grep -i android

To zgłosiło proces Java (.gradle / daemon) powiązany z Android Studio. Zabiłem ten proces, zrestartowałem Android Studio i problem zniknął.

Orzeszki ziemne
źródło
0

wyłącz opcję programisty w telefonie.

Ustawienia> Opcja programisty> Wyłącz

To zadziałało dla mnie, gdy próbowałem użyć mojej aplikacji bez debugowania.

Fazal
źródło
0

Rozwiązaniem problemu było dla mnie: „Uruchom” -> „Dołącz debugger do procesu Androida”, a następnie wybierz swój proces.

Robisz to w Android Studio.

Sid
źródło
0

Miałem ten sam problem, naprawiłem go, jawnie wybierając żądane urządzenie w konfiguracji debugowania. Niestety, nawet po tym dzienniku czasami zatrzymuje się, gdy debugger próbuje się połączyć. W takim przypadku w perspektywie DDMS znajdź żądany proces. Zostanie podświetlony zielonym błędem. Kliknij zatrzymaj, a następnie ponownie debuguj.

Andrey Talnikov
źródło
0

To może być stare, ale w przypadku najnowszej aktualizacji Genymotion 2.7.1 przejdź do opcji programisty , jeśli nie wiesz, jak otworzyć tę opcję, przejdź do Informacje o telefonie i kliknij kilka razy Numer kompilacji, a opcje programisty zostaną włączone. Włącz opcję programisty, sprawdź debugowanie USB .

Testowane na Genymotion 4.4 i nowszych. Dziwne rozwiązanie, co? Ale na pewno działa. Mam nadzieję, że to pomoże. Miłego kodowania.

ralphgabb
źródło
0

W trybie debugowania Android Studio łączy się z urządzeniem przez gniazdo (: 8600). W jakiś sposób połączenie z gniazdem jest zablokowane, a tym samym nie reaguje na połączenia przychodzące.

Uruchom ponownie Android Studio, a problem zostanie rozwiązany

HimalayanCoder
źródło
-1

Dużo o tym czytałem, a jedynym rozwiązaniem, które działało, było utworzenie nowego projektu, a następnie skopiowanie do niego starego.

pstorli
źródło