Cordova 应用程序在 Samsung Marshmallow 手机上崩溃

Cordova app crashing on Samsung Marshmallow phones

我正在尝试通过使用 Cordova 创建一个 puzzle/game 小应用程序来自学 JavaScript。我已经有了一个基本的原型,并且已经成功地在 iPhone 上构建它,而且它 运行 非常完美。

我有 3 个 android phone 用于测试,1 个 Marshmallow(BLU 品牌)、1 个 Lollipop 和 1 个 Kitkat...而且应用程序在这些上也能完美运行。我将该应用程序发送给该国另一边的 2 个朋友进行测试,但它在他们的 Samsung Marshmallow phones(Galaxy 7 和 Galaxy Edge 7)上崩溃了。它 运行s 了一会儿,然后就在没有任何用户输入的情况下崩溃了。

所以,我尝试了 2 个独立的崩溃分析插件,Fabric 和 Crittercism。我可以验证这两者是否正常工作,因为我可以在应用程序中强制崩溃,它会显示为崩溃报告。

但是当我的朋友们 运行 带有崩溃分析的应用程序时,无论发生什么导致应用程序崩溃,它都不会触发来自 Fabric 或 Crittercism 的任何报告。我试图在我的 PC 上安装 android 模拟器 运行ning,但不幸的是它是 AMD 处理器,缺少一些必要的虚拟化。我什至无法在我的 PC 上将模拟器的超慢 ARM 版本安装到 运行,它永远挂起。

我最近刚刚安装了 cordova,并在安装过程中采用了所有默认设置。所以据我所知,它的目标应该是 android API 23 (Marshmallow)。但也许还有其他类型的构建问题把事情搞砸了?

所以我有点不知道如何调试这个问题。除了在本地找到可以借给我三星棉花糖 phone 来调试的人之外,我想不出其他任何可行的方法。有人有什么想法吗?

  1. ARM 模拟器确实慢得令人难以忍受。我会建议第三方模拟器。我使用 GenyMotion (which uses VirtualBox under the hood). You might have some luck with that. Alternatively, ManyMo 是一个基于云的解决方案,可能会很有用。

  2. PhoneGap/Cordova 使用的系统 Web 视图在 Android 设备上会有很大差异,这意味着您可以 运行 解决 Android 上的不同问题版本和设备制造商。我建议使用 the Crosswalk plugin 来缓解这些问题。请注意,这会增加 APK 的大小和设备上已安装应用的占用空间。

  3. 当应用程序崩溃时,它是否真的崩溃到启动器,或者应用程序是否会自行重新加载(或仅显示背景颜色)?我不希望 Crashlytics 处理 JavaScript 问题,除非 JavaScript 导致应用程序崩溃到启动器。