【问题标题】:Out of memory error: Java heap memory (GC heap)内存不足错误:Java 堆内存(GC 堆)
【发布时间】:2018-10-11 07:17:33
【问题描述】:

突然我的应用程序崩溃并弹出此错误...对此错误有什么想法吗?努力了还是解决不了……

Clamp target GC heap from 111MB to 96MB Alloc concurrent mark sweep GC freed 3(96B) AllocSpace objects, 0(0B) LOS objects, 0% free, 95MB/96MB, paused 2.380ms total 71.136ms

抛出 OutOfMemoryError "无法分配 14710 字节分配,12888 可用字节和 12KB 直到 OOM

AndroidRuntime: Error reporting crash
              java.lang.OutOfMemoryError: Failed to allocate a 14710 byte allocation with 12888 free bytes and 12KB until OOM
                  at java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:95)
                  at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:125)
                  at java.lang.StringBuffer.append(StringBuffer.java:278)
                  at java.io.StringWriter.write(StringWriter.java:123)
                  at com.android.internal.util.FastPrintWriter.flushLocked(FastPrintWriter.java:358)
                  at com.android.internal.util.FastPrintWriter.appendLocked(FastPrintWriter.java:303)
                  at com.android.internal.util.FastPrintWriter.write(FastPrintWriter.java:625)
                  at com.android.internal.util.FastPrintWriter.append(FastPrintWriter.java:658)
                  at java.io.PrintWriter.append(PrintWriter.java:691)
                  at java.io.PrintWriter.append(PrintWriter.java:31)
                  at java.lang.Throwable.printStackTrace(Throwable.java:324)
                  at java.lang.Throwable.printStackTrace(Throwable.java:300)
                  at android.util.Log.getStackTraceString(Log.java:509)
                  at com.android.internal.os.RuntimeInit.Clog_e(RuntimeInit.java:59)
                  at com.android.internal.os.RuntimeInit.access$200(RuntimeInit.java:43)
                  at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:91)
                  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
                  at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)

我尝试过thisthisthis 之类的方法,但它不起作用。

谁能帮我解决?我真的很感激。

谢谢!

【问题讨论】:

  • 你的代码是什么样的?仅发布相关部分(发生此错误时执行的代码)
  • 你的代码显然有问题。可能是内存泄漏。
  • 欢迎来到 Stack Overflow!请阅读“如何创建minimal reproducible example”。然后使用edit 链接改进您的问题(不要通过 cmets 添加更多信息)。否则我们无法回答您的问题并为您提供帮助。
  • 请注意,您的java.lang.OutOfMemoryError 发生在Throwable.printStackTrace 内,读取时尝试打印另一个异常或错误。另一个 throwable 也可以是 OutOfMemoryError,但也可以是其他东西。
  • 您的内存不足。要么减少内存使用,要么检查内存泄漏、递归调用等......

标签: java android garbage-collection out-of-memory


【解决方案1】:

在你的Manifext.xml 添加这行android:largeHeap="true" 它将分配一个大的堆内存。

<application
        android:name=".MyApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"

        android:largeHeap="true"

        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/MyAppTheme">
...
</application>

我希望这对你有用。

尝试使用 Debugger 和 Android Profiler 来检测资源用于提高性能的确切位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-04
    • 1970-01-01
    • 2013-09-10
    • 2015-02-10
    • 2017-10-10
    • 1970-01-01
    • 2014-08-02
    • 2021-11-20
    相关资源
    最近更新 更多