2012-03-05 10 views
6

Ho un'applicazione per PhoneGap che sta lanciando un errore javascript. Ho avuto la pagina HTML aperta in un browser sul desktop e funziona bene senza errori. Quando lo carico nell'emulatore di Android, l'evento window.onerror viene generato, ma non riesco a vedere alcuna informazione utile nell'oggetto error per vedere da dove proviene. Ho questo per cercare di ottenere di più l'oggetto di errore:Trova l'errore javascript che sto ricevendo in PhoneGap su Android

window.onerror = function(e){ 
    for(var i in e){ 
     console.log("window.onerror ::" + i + ' = ' + e[i]); 
    } 
}; 

Ma io non vedo neppure una proprietà 'messaggio'. Ecco l'output:

window.onerror ::undefined 
window.onerror ::eventPhase = 3 
window.onerror ::currentTarget = [object DOMWindow] 
window.onerror ::cancelable = false 
window.onerror ::target = [object HTMLScriptElement] 
window.onerror ::bubbles = true 
window.onerror ::type = error 
window.onerror ::cancelBubble = false 
window.onerror ::clipboardData = undefined 
window.onerror ::srcElement = [object HTMLScriptElement] 
window.onerror ::defaultPrevented = false 
window.onerror ::timeStamp = 1330975112077 
window.onerror ::returnValue = true 
window.onerror ::stopPropagation = function stopPropagation() { [native code] } 
window.onerror ::preventDefault = function preventDefault() { [native code] } 
window.onerror ::initEvent = function initEvent() { [native code] } 
window.onerror ::stopImmediatePropagation = function stopImmediatePropagation() { [native code] } 
window.onerror ::CAPTURING_PHASE = 1 
window.onerror ::AT_TARGET = 2 
window.onerror ::BUBBLING_PHASE = 3 
window.onerror ::MOUSEDOWN = 1 
window.onerror ::MOUSEUP = 2 
window.onerror ::MOUSEOVER = 4 
window.onerror ::MOUSEOUT = 8 
window.onerror ::MOUSEMOVE = 16 
window.onerror ::MOUSEDRAG = 32 
window.onerror ::CLICK = 64 
window.onerror ::DBLCLICK = 128 
window.onerror ::KEYDOWN = 256 
window.onerror ::KEYUP = 512 
window.onerror ::KEYPRESS = 1024 
window.onerror ::DRAGDROP = 2048 
window.onerror ::FOCUS = 4096 
window.onerror ::BLUR = 8192 
window.onerror ::SELECT = 16384 
window.onerror ::CHANGE = 32768 

Cos'altro posso fare per trovare il problema?

+0

Ebbene si può eseguire il debug del codice ...? – gdoron

+0

Non lo so, posso? Ho appena installato eclipse - non l'ho mai usato prima o nessun altro strumento java. Puoi impostare un breakpoint in una classe javascript con esso o impostarlo su interruzione automatica su qualsiasi eccezione javascript? – adam0101

+0

È passato un po 'di tempo dall'ultima volta che ho usato l'eclisse, non lo so ... ma in VS è possibile. =) – gdoron

risposta

3

Ora è possibile installare Chrome per eseguire il debug Android e remote/analizzare la vostra domanda nello stesso modo in cui si farebbe con cromo regolare:
http://code.google.com/chrome/mobile/docs/debugging.html

Per installare Chrome nell'emulatore:

si può prendere un po 'per l'installazione. Quindi segui le istruzioni per eseguire il debug remoto della tua applicazione web

+0

Non ho l'applicazione distribuita su un dispositivo mobile, solo per l'emulatore Android lanciato da Eclipse. Questo si applica a me? – adam0101

+0

Ho modificato la risposta con ulteriori dettagli per l'emulatore –

+0

Sembra promettente. Dovrò provarlo. – adam0101

0

Ti stai perdendo perché il gestore degli errori in realtà passa più argomenti, quindi devi registrarli anche tu.

Per esempio,

window.onerror = function(e,f,g){ 
    console.log("window.onerror ", e, f, g); 
}; 
Problemi correlati