【问题标题】:PhoneGap app crashes on WP8.1PhoneGap 应用程序在 WP8.1 上崩溃
【发布时间】:2015-09-23 18:51:50
【问题描述】:

tl;dr - 我似乎无法让 PhoneGap 应用程序在 WP8.1 上成功运行。在我诊断问题的过程中存在许多问题。

设置:我创建了一个 PhoneGap 3.4 Windows Phone 应用程序,使用 Visual Studio 2012 for WP 在 Windows Phone 8 上对其进行了测试,并提交了它。我从使用 Windows Phone 8.1 的人那里收到了大量的崩溃报告。

诊断问题:我继续尝试使用 Visual Studio 2013 for Windows 在 WP8.1 模拟器上运行该应用程序。我收到以下错误:

Deployment of application to device failed.
Exception from HRESULT: 0x89721500

然后我尝试选择“重新定位到 Windows Phone 8.1”。应用程序启动并显示初始屏幕,但随后它也崩溃了,我收到以下错误:

An exception of type 'System.SystemException' occurred in Microsoft.Phone.Interop.ni.dll but was not handled in user code

Additional information: An unknown error has occurred. Error: 80020006.

If there is a handler for this exception, the program may be safely continued.

尝试侧载现有的 XAP: 考虑到通过 VS2013 运行此应用程序可能会出现问题,我想我可以尝试侧载它。问题是,8.1 模拟器没有 XapDeploy.exe,我似乎无法在模拟器中从 Internet 下载/打开应用程序。

试图弄清楚是什么:这些都不是非常有用,特别是考虑到 WP8.1 是多么新,以及处理 PhoneGap 的人相对较少;遇到这种问题的人不多,所以网上也不多。我已经用 PhoneGap 创建的新应用尝试了上述所有方法,没有区别。

这里的任何帮助,为我指明任何方向,都会非常有帮助。

一种解决方法:如果我不能让它工作,一种解决方法就是排除对 8.1 的支持;阻止使用 8.1 的人下载应用程序/应用程序版本。我有什么办法吗?我似乎在任何地方都找不到办法。

【问题讨论】:

    标签: cordova windows-phone-8 windows-phone-8.1


    【解决方案1】:

    我的项目遇到了同样的问题。如果您的项目异步加载多个外部文件(.html、.js、...),我找到了解决方案。

    我调试了这个问题的根源,并获得了它似乎运行的更简单的科尔多瓦种子示例,然后慢慢进入我的项目状态,我看到当我加载多个文件时它在科尔多瓦文件 XHRHelper.cs 中崩溃一次归档。

    终于在https://issues.apache.org/jira/browse/CB-4873找到了解决办法。 cordova 和 Windows Phone 8.1 似乎存在某种错误,当他尝试异步加载多个文件时,它会崩溃。

    Maris Seimanovs 有一条评论通过提供修改后的 XHRHelper 文件解决了这个问题,为我解决了这个问题:https://gist.github.com/anonymous/5bf4d9ba9cdb5d0f3f3e

    请记住,您可以在platforms/wp8/cordovalib/XHRHelper.cs 中找到XHRHelper 文件

    希望对你也有帮助。

    【讨论】:

    • 感谢您的详细解答!对于延迟回复您,我深表歉意。我已经继续尝试用您链接到的 Maris Seimanovs 替换 platform/wp8/cordovalib/XHRHelper.cs,但重新定位到 Windows Phone 8.1 的应用程序仍然出现相同的错误。您知道还有其他可能的解决方案吗?我在您提供的错误链接中没有看到任何内容。
    • 我有完全相同的问题仍然崩溃异常 indexoutofrange
    • 添加 Maris 的代码可以让应用程序更进一步,现在它似乎加载了应用程序,我可以看到主菜单但之后仍然会精神...我希望这都是新问题,但至少我'm 不再从 jquery $.ajax 调用中获得出现在正文部分的随机文本。我不敢相信这个错误出现在 cordova wp8 中,因为这些天几乎每个现代应用程序都使用 ajax 调用??
    • Maris Seimanovs 修改后的 XHRHelper 在我的案例中就像一个魅力
    • 非常感谢。 Maris Seimanovs 修改后的 XHRHelper 也适用于我。
    【解决方案2】:

    我遇到了这个问题,并遵循了我能找到的所有其他解决方案,但没有成功,Exception throw: 'System.SystemException' in Microsoft.Phone.Interop.ni.dll 消息留下来。

    我花了几个小时才发现我有一个格式错误的 Content-Security-Policy 元标记 - 我错过了 content 属性的结束引号。

    加上结束引号修复了错误。很难相信一个简单的标记语法错误会导致一切崩溃。

    我想我会在这个 SO 线程上分享这个,因为这似乎是谷歌对该错误的最高打击,毫无疑问其他人会遇到和我一样的问题。

    【讨论】:

      猜你喜欢
      • 2015-03-17
      • 2015-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多