2012-11-09 6 views
6

Ho fatto un errore da qualche parte nel mio codice che la mia app Android si blocca quando spengo la rete nell'emulatore mentre l'app HTTPClient sta facendo una richiesta.Disconnettere la rete nell'emulatore Android mantenendo ADB in vita

Ma non riesco a eseguire il debug, perché quando ho spento la rete, ho perso anche la connessione ADB. Quindi non riesco a vedere quale eccezione sta causando l'arresto.

ho cercato di spegnere la rete:

  • F8
  • Set 'Dati' a 'Non registrato' o 'negato' in DDMS Emulatore di controllo

posso mettere il mio Mac offline e ADB resteranno attivi, ma sfortunatamente non riesco a riprodurre il crash in questo modo.

C'è un modo per disattivare la rete nell'emulatore, mantenendo in vita ADB? Fondamentalmente ho bisogno di accedere alle voci LogCat.

Grazie!

+0

Solo per FYI, ho risolto il problema di arresto anomalo con un registro di prova e stampa globale alla vista. Ma non posso continuare a farlo - e apprezzerei se qualcuno avesse una soluzione per la domanda :) – edwinbs

risposta

2

È possibile eseguire logcat dal dispositivo anziché da ADB e reindirizzare a un file per la lettura offline.

adb shell logcat [-v threadtime] > /sdcard/mylogs/logcat.log 

Invece di

adb logcat [-v threadtime] 

allora si può ottenere il file quando ci si riconnette al dispositivo.

+0

Buona idea, grazie. Decisamente meglio di dover scaricare i registri su una vista. – edwinbs

0

Si può sempre mettere il dispositivo in modalità aereo, che consente comunque di connettersi tramite adb ma non di fornire all'emulatore una connessione a Internet. Puoi anche disattivare i dati tramite eclipse tramite la sezione di controllo dell'emulatore in ddms inserendo i dati non registrati/negati nel menu a discesa.

+1

La modalità aereo non funziona, l'emulatore perderà la connessione ADB, almeno in Mac. – edwinbs

1

Su Linux questo è piuttosto semplice con il firewall iptables. Suppongo che si cerca di eseguire il debug di chiamate API quindi basta bloccare ospite api:

iptables -I OUTPUT -d api.example.com -j DROP 

Certo si può fare stessa cosa con Mac o un firewall di Windows.

0

So che questa è una vecchia domanda ma qualcuno potrebbe usare la ricerca per questo.

La mia configurazione

Eclipse Keplero con emulato Android 4,4

Se si desidera mantenere la adb rete viva e spenta, si può provare questo.

  1. Inizio emulato dispositivo
  2. Attivare volo modalità aereo/
  3. riavviare Eclipse
  4. Dovrebbe funzionare!Controlla la prospettiva DDMS per dispositivi collegati o usa il comando
Problemi correlati