如何在Android中找到崩溃Cordova应用程序的内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Android中找到崩溃Cordova应用程序的内容?相关的知识,希望对你有一定的参考价值。

我使用Cordova为iosandroid编写了一个混合游戏。这款游戏在iOS和Android上都运行得很好,我几乎准备好发布它,但我只需要制作一些启动画面。完成后,我在两个平台上进行了一次最终测试,结果发现几分钟后Android上的游戏崩溃!它以前从未这样做,我不知道是什么导致它。最新的是我的手机在玩游戏时变得如此热,一段时间后你几乎不能再拿它了(我测得126F)。

我只使用两个插件:cordova-plugin-admob-free和cordova-plugin-splashscreen。出于测试目的,我删除了两个以查看它们是否导致崩溃,但崩溃仍然存在。

当使用Cordova(cordova运行android --devices)构建时游戏崩溃,如果我在PhoneGab Build上构建它并手动安装apk。

我已尝试使用chrome:// inspect进行调试,但我没有看到控制台上出现任何错误。我也跑了

adb logcat

但是日志太复杂了,我无法理解导致崩溃的原因。如果有人想看看它,我已经上传了日志here的副本。游戏的名称是“mygame”(这不是它的名字,但我将其更改为日志文件中的名称)。

我不知道如何找出造成这次崩溃的原因。在iOS上,一切都很好。这只是导致此问题的Android。如果您需要更多信息或者我需要更具体,请告诉我您需要的更多信息,我会将其添加到这篇文章中。

编辑2018年8月24日:我已经能够在另一部Android手机和模拟器上进行测试,并且没有在那里崩溃。我仍然需要弄清楚导致崩溃的原因,因为它是我手机上崩溃的唯一应用程序。我还想知道当我运行它时导致巨大电池耗尽的原因。这也是新的。

编辑2018年8月26日:嗯,更多的Android设备正在经历崩溃。我在我的设备上做了一些测试。我删除了两个Cordova插件(AdMob en SplashScreen)en启动游戏。我让它坐在开始屏幕上,所以在那一点上,还没有创建任何游戏对象,它所做的只是一些简单的计算和一些context.drawImage()调用。一段时间后手机仍会变热并崩溃。可能是context.drawImage()有内存泄漏吗?

编辑2018年8月27日:我剥离了应用程序,以便在游戏的主循环中只剩下两个drawImage()(和一个requestAnimatonFrame())。一个drawImage()将画布作为源,另一个作为img对象。一段时间后它仍然崩溃。然后我用img对象作为源删除了drawImage(),经过一个小时的测试后它仍然没有崩溃。然后我添加了一些drawImage()全部用​​画布作为源 - 并且没有崩溃。然后我用img对象替换了画布作为源,几分钟后它就崩溃了。所以我认为将img对象作为源的drawImage()导致崩溃是安全的吗?

编辑2018年8月29日:我在我的代码中更改了所有drawImages()以使用画布作为源。画布仅使用图像填充一次。我第一次运行游戏时,它没有崩溃!我以为我已经解决了这个问题,但经过一些测试后我发现它确实崩溃了,但游戏崩溃需要更长的时间。因此,尽管这是迈向解决方案的良好一步,但它仍然不是解决方案。

编辑2018年8月30日:我能够通过Android Studio运行游戏,当它崩溃时,调试控制台显示:

E/chromium: [ERROR:gl_fence_egl.cc(55)] Failed to get EGLSync attribute. error code:12300
W/google-breakpad: ### ### ### ### ### ### ### ### ### ### ### ### ###
                   Chrome build fingerprint:
                   68.0.3440.91
                   344009152
                   ### ### ### ### ### ### ### ### ### ### ### ### ###
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 13865 (Chrome_InProcGp)

有人可以帮我调试吗?

答案

你的问题是通用的,所以答案同样如下:

$ adb logcat ActivityManager:I <com.your.application>:V -e INFO:CONSOLE*

这使您只能获取有关所测试应用程序的日志。用项目的点缀应用程序名称替换尖括号(包括尖括号)中的所有内容。

在详细了解编辑更新时,如果您需要详细的帮助,请考虑提供样本和来源。

以上是关于如何在Android中找到崩溃Cordova应用程序的内容?的主要内容,如果未能解决你的问题,请参考以下文章

Android Cordova 5.0+ 相机崩溃

尝试退出插件 webview 时,带有集成插件的 Cordova 应用程序在 webview 上崩溃(android 测试)

从 Play 商店安装时,Android Cordova 应用程序崩溃

Kotlin 协程协程异常处理 ④ ( Android 协程中出现异常导致应用崩溃 | Android 协程中使用协程异常处理器捕获异常 | Android 全局异常处理器 )

Kotlin 协程协程异常处理 ④ ( Android 协程中出现异常导致应用崩溃 | Android 协程中使用协程异常处理器捕获异常 | Android 全局异常处理器 )

android 6 中的语音演示崩溃