2012-03-05 15 views
6

Tengo una aplicación de phonegap que arroja un error de javascript. He tenido la página HTML abierta en un navegador en el escritorio y funciona bien allí sin ningún error. Cuando lo cargo en el emulador de Android, el evento window.onerror es despedido, pero no puedo ver ninguna información útil en el objeto de error para ver de dónde viene. Tengo esto para tratar de sacar más provecho del objeto de error:Encuentra el error de javascript que estoy recibiendo en phonegap en android

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

Pero yo ni siquiera veo una propiedad 'mensaje'. Aquí está la salida:

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 

¿Qué más puedo hacer para encontrar el problema?

+0

Bien puede depurar el código ...? – gdoron

+0

No lo sé, ¿verdad? Acabo de instalar eclipse, nunca antes lo había usado ni ninguna otra herramienta de Java. ¿Puede establecer un punto de interrupción en una clase javascript con él o configurarlo para romper automáticamente cualquier excepción de javascript? – adam0101

+0

Ha pasado un tiempo desde que utilicé eclipse, no sé ... pero en VS puedes. =) – gdoron

Respuesta

3

Ahora puede instalar Chrome para depuración androide y remota/analizar su aplicación en la misma forma que lo haría con cromo normal:
http://code.google.com/chrome/mobile/docs/debugging.html

Para instalar Chrome en el emulador:

puede tomar un tiempo para instalar. A continuación, siga las instrucciones para depurar remotamente su aplicación web

+0

No tengo la aplicación implementada en un dispositivo móvil, solo para el emulador de Android lanzado desde eclipse. ¿Esto se aplica a mí? – adam0101

+0

He editado la respuesta con más detalles para el emulador –

+0

Parece prometedor. Tendré que probarlo. – adam0101

0

Se está perdiendo ya que el controlador de errores en realidad se pasa múltiples argumentos, por lo que debe registrarlos también.

Por ejemplo,

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