2015-12-18 24 views
5

Ho una configurazione in cui l'applicazione web nel mio PC sta accedendo alle informazioni dell'applicazione in esecuzione sul dispositivo connesso (tramite debug USB). e invia continuamente i dati dell'app all'applicazione Web (PC).Impossibile ottenere gli elementi nello strumento uiautomator quando l'app è in esecuzione sul dispositivo

sto automatizzare questo usando il selenio (web GUI) e appium (dispositivo) per il mio test di automazione ..

Problema: non sono in grado di connettersi al dispositivo da uiautomator.bat strumento una volta che l'applicazione è sempre lanciata nel dispositivo e comunicare con l'app Web (nel mio PC). Ottenere l'errore seguente. C'è una soluzione per questo problema.

-------- registro uiautomator.bat -----------

C: \ Users \ sat_yug \ android-SDK \ Strumenti> uiautomatorviewer.bat 03: 57:35 E/DeviceMonitor: connessione Adb Errore: Una connessione esistente è stata forzatamente chiusa dall'host remoto 03:57:36 E/DeviceMonitor: tentativi di connessione: 1 03:57:38 E/DeviceMonitor: tentativi di connessione: 2 03:57:40 E/DeviceMonitor: tentativi di connessione: 3 03:57:42 E/DeviceMonitor: tentativi di connessione: 4 03:57:44 E/DeviceMonitor: tentativi di connessione: 5 03:58:04 E/DeviceMonitor : Errore connessione Adb: una connessione esistente è stata forzata y chiusa dall'host remoto log

adb devices ------------ ---------------------

C: \ Users \ sat_yug \ android-sdks \ platform-tools> dispositivi adb Elenco dei dispositivi collegati server adb non è aggiornato. killing ... errore: impossibile installare smartsocket listener: impossibile eseguire il binding a 127.0.0.1:5037: è consentito un solo utilizzo di ciascun indirizzo socket (protocollo/n indirizzo/porta di rete). (10048) non sapeva leggere bene da ADB Server * non è riuscito a avviare il demone * errore : non può collegarsi al demone


+0

anche aggiungere il contenuto del file bat qui – AndroidMechanic

risposta

1

Come per la risposta a THIS domanda, v'è la possibilità che si potrebbe avere due versioni di adb installato.

Provare quanto segue (citato dallo stesso post per verificare se ci sono più versioni) e sbarazzarsi di quello indesiderato.

where adb.exe

Un'altra opzione che si potrebbe provare è quello di uccidere e avviare il server adb prima del punto di errore o all'inizio dell'esecuzione del file batch.

11

Ho appena risolto questo per me così ho pensato di condividere anche se la domanda è vecchia. Il semplice riavvio di adb non funzionerà. Aprire un prompt dei comandi con privilegi di amministratore ed eseguire questa operazione:

netstat -o -n -a | findstr 5037 

Questo produrrà un elenco di risultati. Questo è ciò che è venuto nel mio caso:

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 

Alla colonna più a destra è l'ID del processo (PID). Il processo che sta ascoltando la presa necessaria è il 3408. Quindi questo processo deve DIE!Quale happends se si fa:

taskkill /F /PID 3408 

Dopo di che si può fare

adb kill-server 
adb start-server 

per riavviare il server adb e la maggior parte propably tua adb inizierà con successo.

UPDATE:

Ho fatto questo piccolo file bat per rendere più facile dal momento che questo accade abbastanza spesso. Assicurati che

1. to place this bat at the same folder as adb.exe 
2. run it as administrator. 

Mostrerà direttamente il PID che sta utilizzando la presa. Digita quel PID e premi invio e il problema scompare.

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 essere contrassegnato come la risposta corretta – XConfusion

0

Ho avuto lo stesso problema. Soluzione:

Accedere per adb shell dal 1 macchina e correre

adb start-server 

e ora tenta di connettersi da altra macchina per lo stesso dispositivo e si sarà in grado di connettersi con successo!

Nel mio caso 2 connessioni erano da: USB e wifi.

Problemi correlati