首页 > 解决方案 > 对输入事件响应缓慢的应用程序崩溃

问题描述

我有 2 块具有相同 imx6d CPU 和 2G 内存的板。它们上的操作系统都是 Android 5.1,但来自不同的供应商。我在它们上面安装了一个应用程序,其中一个运行良好,而另一个在我单击窗口时总是崩溃。Logcat 显示 ANR 错误导致了问题。

E/ActivityManager( 2803): ANR in com.mm.android.direct.gdmsspadLite (com.mm.android.direct.gdmsspadLite/com.mm.android.direct.gdmsspad.MainActivity)
E/ActivityManager( 2803):   51% 5968/com.mm.android.direct.gdmsspadLite: 39% user + 11% kernel / faults: 3483 minor
E/ActivityManager( 2803):   103% 5968/com.mm.android.direct.gdmsspadLite: 50% user + 53% kernel / faults: 746 minor
E/ActivityManager( 2803):     98% 5968/ct.gdmsspadLite: 48% user + 50% kernel
E/ActivityManager( 2803):     1.9% 6379/ct.gdmsspadLite: 0% user + 1.9% kernel
W/ActivityManager( 2803):   Force finishing activity com.mm.android.direct.gdmsspadLite/com.mm.android.direct.gdmsspad.MainActivity
I/ActivityManager( 2803): Killing 5968:com.mm.android.direct.gdmsspadLite/u0a38 (adj 0): user request after error

我发现问题板显示如下警告:

D/dalvikvm( 5721): No JNI_OnLoad found in /data/app-lib/com.mm.android.direct.gdmsspadLite-1/libdvr.so ,skipping init

失败的 JNI-OnLoad 是否会导致响应缓慢并最终导致崩溃?

标签: androidcrash

解决方案


似乎默认的 dalvik.heapsize 和 dalvik.heapgrowthlimit 对于我的应用程序来说太少了。我放大了这些,并且不太可能发生错误。然而,经过2分钟的高频测试,它终于崩溃了。然后我扩大了ANR的响应时间,它经受住了3个多小时的测试。


推荐阅读