OutOfMemory加载崩溃

时间:2015-03-30 13:24:29

标签: android performance android-memory

我遇到了崩溃,我在Google Play中收到了以下报告。

java.lang.OutOfMemoryError: [memory exhausted]
at dalvik.system.NativeStart.main(Native Method)

正如您所看到的,不是很多信息。 this question有同样的问题,但我不相信忽略它的答案是可以接受的。

我的应用程序在堆栈跟踪中没有任何内容表明它是不允许应用程序启动的操作系统。这意味着我们无能为力,即使在用户重新启动设备后,他们仍无法打开应用程序。我的应用程序并不大:设备上的22.20MB。

请参阅以下内容或崩溃报告统计信息。

OOM Crash Report Stats

我能做些什么来纠正这种情况,或者至少减少发生这种情况的可能性?

1 个答案:

答案 0 :(得分:0)

不知道它是否是正确的解决方案,但它解决了我的问题。 java.lang.OutOfMemoryError的常见原因是超出了缓存的限制。我做了什么,我已经清除了启动器活动上的应用程序缓存。因此,无论何时启动应用程序,它都会清除缓存。

将此方法添加到启动器活动的onCreate方法的旁边。

//Following two methods are used to clear the Cache memory of this application
public static void deleteCache(Context context) {
    try {
        File dir = context.getCacheDir();
        if (dir != null && dir.isDirectory()) {
            deleteDir(dir);
        }
    } catch (Exception e) {}
}

public static boolean deleteDir(File dir) {
    if (dir != null && dir.isDirectory()) {
        String[] children = dir.list();
        for (int i = 0; i < children.length; i++) {
            boolean success = deleteDir(new File(dir, children[i]));
            if (!success) {
                return false;
            }
        }
    }
    return dir.delete();
}

并在deleteCache(this);内调用onCreate