2010-10-18 1 views

risposta

17

Dal breve articolo di Rich Chetwynd "Javascript debugging su browser Android".

È possibile registrare gli errori javascript e i messaggi della console dal dispositivo o dall'emulatore Android. Per fare questo è necessario prima installare i driver Android SDK e USB e abilitare il debug USB sul dispositivo reale.

Per verificare se il dispositivo è collegato correttamente è possibile eseguire il seguente cmd dalla directory strumenti SDK Android e si dovrebbe vedere un dispositivo nell'elenco

c:\android sdk..\platform-tools\adb devices

È possibile quindi utilizzare il Debug Bridge Android per filtrare i messaggi di debug in modo da visualizzare solo i messaggi relativi al browser eseguendo il seguente cmd.

c:\android sdk..\platform-tools\adb logcat browser:V *:S

Di default il log viene scritto su stdout così potrete vedere eventuali errori JavaScript o messaggi console.log ecc scritti alla finestra cmd.

+0

Link è morto :(Qualcuno sa se ciò che esiste altrove? – Jesse

+0

Il testo dell'articolo originale è stato copiato nella risposta. Questo è tutto ciò che c'è da fare. –

+0

Vedo - 'browser logcat in esecuzione: V *: S' sembra emettere tutti i log per me, ho dovuto reindirizzarlo a grep per ottenere i log rilevanti. – Jesse

2

Si potrebbe aggiungere un po 'di JavaScript temporaneamente come ...

var console = { 
    log: function(msg) { alert(msg); } 
}; 

brutto come l'inferno, ma funziona.

6

Se si è avviato l'emulatore dalla Eclipse con l'ADT plugin, vedrete tutti JavaScript log della console direttamente sotto la vista LogCat:

Window -> Show View -> Android -> LogCat 
3

ho dirottato il console.log utilizzando questo codice:

function logManager() { 
    var self = this; 

    self.init = function() { 
     console.log('logmanager initialized'); 
     var old = console.log; 
     self.logger = document.getElementById('log'); 
     console.log = function (message, options) { 
      if (typeof message == 'object') { 
       self.logger.innerHTML = (JSON && JSON.stringify ? JSON.stringify(message) : message) + '<br />' + self.logger.innerHTML; 
      } else { 
       self.logger.innerHTML = message + '<br />' + self.logger.innerHTML; 
      } 
     } 
    } 
    self.toggleLogVisibility = function() { 
     return $(self.logger).toggle(); 
    }; 
} 

E consumarlo così nel tuo html con il tuo stile (in alto a destra in alto è quello che ho usato)

<div id="log" class="log"> 
    Application loaded... 
</div> 

E nel tuo JScript (eseguire questo a pagina caricata come elemento di registro deve esistere)

document.lmgr = new logManager(); 
document.lmgr.init();