2015-12-18 36 views
5

Mam konfigurację, w której aplikacja internetowa na moim komputerze uzyskuje dostęp do informacji o aplikacji uruchomionej na podłączonym urządzeniu (poprzez debugowanie USB). i nieprzerwanie wysyła dane aplikacji do aplikacji internetowej (PC).Nie można uzyskać elementów w narzędziu uiautomator, gdy aplikacja jest uruchomiona na urządzeniu

jestem automatyzację to przy użyciu selen (GUI WWW) i appium (urządzenie) dla moich testów automatyki ..

Problem: Nie mogę połączyć się z urządzeniem z uiautomator.bat narzędzia kiedy zostanie uruchomiona aplikacja uzyskiwanie w urządzeniu i komunikowanie się z aplikacją internetową (na moim komputerze). Otrzymanie poniższego błędu. Czy istnieje obejście tego problemu.

-------- dziennika uiautomator.bat -----------

C: \ Users \ sat_yug \ Android SDK \ tools> uiautomatorviewer.bat 03: 57:35 E/DeviceMonitor: Połączenie Adb Błąd: Istniejące połączenie zostało przymusowo zamknięte przez zdalny host 03:57:36 E/DeviceMonitor: Próby połączenia: 1 03:57:38 E/DeviceMonitor: Próby połączenia: 2 03:57:40 E/DeviceMonitor: Próby połączenia: 3 03:57:42 E/DeviceMonitor: Próby połączenia: 4 03:57:44 E/DeviceMonitor: Próby połączenia: 5 03:58:04 E/DeviceMonitor : Błąd połączenia Adb: istniejące połączenie to forcibl Y zamknięty przez zdalnego komputera

------------ urządzenia ADB log ---------------------

C: \ Users \ sat_yug \ android-sdks \ platform-tools> urządzenia adb Lista podłączonych urządzeń Serwer adb jest nieaktualny. zabicie ... błąd: nie można zainstalować smartsocket detektor: nie można powiązać z 127.0.0.1:5037: Tylko jedno użycie każdego adresu gniazda (protokół/n adres etwork/port) jest normalnie dozwolone. (10048) nie mógł odczytać ok z ADB Server * Nie można uruchomić demona * błąd: nie można połączyć się demon


+0

również dodać zawartość pliku bat tutaj – AndroidMechanic

Odpowiedz

1

zgodnie odpowiedzi na THIS pytanie, istnieje możliwość, że można mieć dwie wersje z zainstalowanego adb.

Wypróbuj następujące (cytowane z tego samego posta, aby sprawdzić, czy istnieje wiele wersji) i pozbyć się niechcianych.

where adb.exe

Inną opcją może spróbować jest zabić i uruchomić serwer adb przed punktem błędu lub na początku wykonywania pliku wsadowego.

adb kill-server 
adb start-server 
.... 
.... 
//your script here 
.... 
.... 
11

po prostu rozwiązać to dla mnie tak myślałem, że dzielić chociaż kwestia jest stary. Po prostu ponowne uruchomienie adb nie zadziała. Otwórz wiersz polecenia z uprawnieniami administratora i wykonaj to:

netstat -o -n -a | findstr 5037 

Zostanie utworzona lista wyników. Oto, co wyszło w moim przypadku:

TCP 127.0.0.1:5037   0.0.0.0:0    LISTENING  3408 
TCP 127.0.0.1:5037   127.0.0.1:50018  ESTABLISHED  3408 
TCP 127.0.0.1:5037   127.0.0.1:54507  ESTABLISHED  3408 
TCP 127.0.0.1:5037   127.0.0.1:63330  ESTABLISHED  3408 
TCP 127.0.0.1:5037   127.0.0.1:63332  ESTABLISHED  3408 
TCP 127.0.0.1:50018  127.0.0.1:5037   ESTABLISHED  1664 
TCP 127.0.0.1:54507  127.0.0.1:5037   ESTABLISHED  1664 
TCP 127.0.0.1:63330  127.0.0.1:5037   ESTABLISHED  1664 
TCP 127.0.0.1:63332  127.0.0.1:5037   ESTABLISHED  1664 

W prawej kolumnie znajduje się identyfikator procesu (PID). Proces, który nasłuchuje potrzebnego gniazda, to 3408. Więc ten proces musi być DIE!Który happends jeśli zrobić:

taskkill /F /PID 3408 

Po tym można zrobić

adb kill-server 
adb start-server 

aby zrestartować serwer adb i najbardziej propably Twój adb rozpocznie się pomyślnie.

UPDATE:

Zrobiłem ten mały plik bat, aby to łatwiejsze, ponieważ dzieje się dość często. Upewnij się, że jest ona bezpośrednio wyświetlana jako identyfikator PID, który korzysta z tego gniazda. Wpisz ten PID i wciśnij enter, a problem zniknie.

netstat -o -n -a | findstr 5037 | findstr LISTENING 
set /p pid=Enter pid to kill:%=% 
@echo %pid% 
taskkill /F /PID %pid% 
adb kill-server 
adb start-server 
pause 
+0

shud być oznaczone jako poprawna odpowiedź – XConfusion

0

Miałem ten sam problem. Rozwiązanie:

Logowanie do adb shell od 1 maszynę i uruchomić

adb start-server 

i teraz starają się połączyć z inną maszyną do tego samego urządzenia, a będziesz w stanie połączyć się z powodzeniem!

W moim przypadku 2 połączenia to: USB i Wi-Fi.