来自Adobe AIR应用程序的java.lang.RuntimeException

3

我在亚马逊上有一个应用程序,有时会崩溃(不到1%的安装),这反映在崩溃报告中。显然,我无法访问实际发生崩溃的设备。以下是其中之一的崩溃报告。是否可以采取任何措施来确定崩溃的原因?

java.lang.RuntimeException at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2672) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:2690) at android.app.ActivityThread.access$2100(ActivityThread.java:117) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:964) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:850) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException at android.app.Activity.missingDialog(Activity.java:2636) at android.app.Activity.dismissDialog(Activity.java:2621) at com.amazon.android.framework.prompt.Prompt.dismissDialog(Unknown Source) at com.amazon.android.framework.prompt.Prompt.dismiss(Unknown Source) at com.amazon.android.framework.prompt.PromptManagerImpl.finish(Unknown Source) at com.amazon.android.framework.prompt.PromptManagerImpl.a(Unknown Source) at com.amazon.android.framework.prompt.i.a(Unknown Source) at com.amazon.android.n.e.a(Unknown Source) at com.amazon.android.n.b.a(Unknown Source) at com.amazon.android.framework.context.d.a(Unknown Source) at com.amazon.android.framework.context.d.onDestroy(Unknown Source) at com.amazon.android.Kiwi.onDestroy(Unknown Source) at air.com.sierravistasoftware.SightWordsSB1.AppEntry.onDestroy(AppEntry.java) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:2659) ... 11 more


你知道这个问题出现在哪些Kindle设备上(Gingerbread或ICS),以及使用的AIR运行时版本(是使用平台自带的版本,还是捆绑为独立运行时)吗? - Offbeatmammal
姜饼(版本2.3.4)。AIR 3.5作为捆绑运行时。 - user1566515
1个回答

0

您可能在关闭对话框时遇到了问题。也许当启动对话框时,设备方向发生变化并且活动重新创建但对话框未被重新创建时,就会出现问题。在这种情况下,如果您试图关闭对话框,则应用程序将崩溃。

尝试复制它以查看是否存在此问题。

您可能更喜欢使用 DialogFragment 来避免此问题,或者简单地捕获异常并继续进行,因为您已经得到了想要的结果(关闭对话框)。

更新:

您的错误日志显示,在销毁活动时尝试关闭缺失的对话框。这可能是 com.amazon.android.framework 源代码中的问题,也许用户在崩溃之前会收到某些提示。

您可以尝试模拟 Activity 被销毁的情况。

根据我们通过评论的聊天,我无法想到其他任何方法,除非查看代码,因此我建议您使用缺陷跟踪系统来帮助您找到应用程序在什么条件下崩溃。

尝试 ACRA:

ACRA是一个库,使Android应用程序能够自动将其崩溃报告发布到GoogleDoc表单中。它的目标是帮助Android应用程序开发人员在应用程序崩溃或行为错误时获取数据。

这只是我想到的一个可能性,因为似乎应用程序在试图关闭缺失的对话框时崩溃。你有在任何地方关闭对话框吗?如果是这样,你能否通过更改方向来复制崩溃? - Alejandro Colorado
我理解你的理论并感谢你的建议,但我不认为这是在这种情况下发生的。1)该应用程序忽略方向更改。2)我没有使用本地对话框。Android不“知道”它是对话框。它只是Flash显示列表中的某个东西。 - user1566515
这也是我的猜测。我希望跟踪也能给我一些指针,以便查找崩溃的原因。正如我在原始问题中提到的那样,这种情况发生在不到1%的安装中,因此可能是硬件和软件的奇怪组合。 - user1566515
你可以尝试复制它。它发生在 onDestroy() 中。当一个 Activity 被销毁退出应用程序时,屏幕方向改变,键盘消失时... 尝试这些类型的场景。 - Alejandro Colorado
抱歉,无法复制。 - user1566515
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接