【问题标题】:Find the javascript error that I'm getting in phonegap on android找到我在 android 上的 phonegap 中遇到的 javascript 错误
【发布时间】:2012-03-23 07:11:53
【问题描述】:

我有一个 phonegap 应用程序引发了 javascript 错误。我已经在桌面上的浏览器中打开了 HTML 页面,它在那里工作正常,没有任何错误。当我在 android 模拟器中加载它时,window.onerror 事件被触发,但我在错误对象中看不到任何有用的信息来查看它的来源。我有这个尝试从错误对象中获取更多信息:

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

但我什至没有看到“消息”属性。这是输出:

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

我还能做些什么来找出问题所在?

【问题讨论】:

  • 那么你可以调试代码...?
  • 我不知道,可以吗?我刚刚安装了 eclipse - 我以前从未使用过它或任何其他 java 工具。你能用它在 javascript 类中设置断点,或者将其设置为在任何 javascript 异常时自动中断吗?
  • 我使用eclipse已经有一段时间了,不知道......但在VS中你可以。 =)
  • 如果我可以使用 VS 那就太好了,但是我的笔记本电脑太旧了,无法获得支持 Windows Phone 7 模拟器的视频驱动程序。没有办法将 VS 附加到 android 模拟器,是吗?

标签: javascript jquery android cordova error-handling


【解决方案1】:

现在您可以像使用常规 chrome 一样安装 Android 版 Chrome 并远程调试/分析您的应用程序:
http://code.google.com/chrome/mobile/docs/debugging.html

在模拟器中安装 Chrome:

安装可能需要一段时间。然后按照说明远程调试您的 Web 应用程序

【讨论】:

  • 我没有将应用程序部署到移动设备上,只是部署到从 eclipse 启动的 android 模拟器上。这适用于我吗?
  • 看起来很有希望。我得试试看。
  • 顺便说一句,我看到有人在使用 Chrome 时遇到问题,无法在模拟器中工作,请确保您安装了最新的 API 更新,如果您有的话,最好在真实设备上尝试一下可用
  • 据我所知,这不适用于 Phonegap。根据该链接,您的 WebView 必须以某种方式设置才能启用调试,并且您必须使用 KitKat。
【解决方案2】:

您错过了,因为错误处理程序实际上传递了多个参数,因此您也需要记录这些参数。

例如,

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2021-11-24
    相关资源
    最近更新 更多