使用 Firebase 时出现内存不足错误

Posted

技术标签:

【中文标题】使用 Firebase 时出现内存不足错误【英文标题】:Out of memory error when using Firebase 【发布时间】:2016-10-10 14:49:50 【问题描述】:

我实现了 firebase google (com.google.firebase:firebase-auth:9.0.2),但是当我调用时

FirebaseAuth mFirebaseAuth = FirebaseAuth.getInstance();

我收到消息内存不足。我是初学者android,我不知道原因。我该如何解决这个问题? 这是日志:

1.424 4944-4944/com.bsp.androidtraining E/art: Throwing OutOfMemoryError "Failed to allocate a 162 byte allocation with 12 free bytes and 12B until OOM"(递归情况) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: "main" prio=5 tid=1 Runnable 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: | group="main" sCount=0 dsCount=0 obj=0x7493a000 self=0xb4827800 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: | sysTid=4944 nice=-11 cgrp=default sched=0/0 句柄=0xb6f35bec 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: | state=R schedstat=( 0 0 0 ) utm=898 stm=49 core=1 HZ=100 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: |堆栈=0xbe7e8000-0xbe7ea000 堆栈大小=8MB 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: |持有互斥锁=“mutator lock”(共享持有) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: native: #00 pc 00004e64 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: native: #01 pc 00003665 /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: native: #02 pc 00244159 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream >& , int, char const*, art::mirror::ArtMethod*)+68) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: native: #03 pc 00227059 /system/lib/libart.so (art::Thread::DumpStack(std::__1:: basic_ostream >&) const+140) 06-10 02:03:51.454 4944-4944/com.bsp.androidtraining E/art: native: #04 pc 0022a31b /system/lib/libart.so (art::Thread::ThrowOutOfMemoryError(char const*)+254 )

java.lang.OutOfMemoryError: OutOfMemoryError 在试图抛出 OutOfMemoryError 时抛出;没有可用的堆栈

【问题讨论】:

真机上会出现这种情况吗?尝试清除缓存,看看是否有帮助。或者,您可以在 Manifest.xml 文件中添加 android:largeHeap="true" 谢谢!我为我工作。 很高兴这有帮助。实际上我应该建议将此作为答案 - 请查看我的答案并接受它,以便您的问题可以标记为已回答。 【参考方案1】:

如果您在 Manifest.xml 文件中设置 android:largeHeap="true",内存不足错误通常会消失 - 但在大多数情况下,应注意确保您不会在内存中不必要地加载大量数据。例如,查看这篇密切相关的文章here 中的讨论。

但是,在您的情况下,我认为您可以在 Manifest.xml 文件中设置 android:largeHeap="true"。这应该会有所帮助。

【讨论】:

以上是关于使用 Firebase 时出现内存不足错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 Numba 进行矩阵乘法时出现 CUDA 内存不足错误

在 ListView 中使用 LazyList 时出现内存不足错误 [重复]

使用 R 和 XLConnect 包时出现“内存不足错误 (Java)”

调用 createBitmap 时出现内存不足错误 [重复]

捕获 tomcat 转储时出现“内存不足或附加权限不足”

发送连续网络摄像头图像时出现内存不足错误java