在我的项目中,我有MainActivity A(处理应用程序导航),片段1(gridview),片段2(map)。
我正在使用mainactivity中的回调来调用网格片段中的地图片段(显示所选条目的标记),这将替换放置一些args的地图片段(用于标记细节)。
到目前为止所做的一切工作,但在某些时候调用地图片段后会出现内存异常:
FATAL EXCEPTION: GLThread 400 Process: XXX , PID: 2378
java.lang.OutOfMemoryError: Failed to allocate a 4194316 byte allocation with 684253 free bytes and 668KB until OOM
at dalvik.system.VMRuntime.newNonMovableArray(Native Method)
at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:812)
at android.graphics.Bitmap.createBitmap(Bitmap.java:789)
at android.graphics.Bitmap.createBitmap(Bitmap.java:756)
at com.google.maps.api.android.lib6.gmm6.m.c.i.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.l.b(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.b.ak.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.c.b.as.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.x.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.l.b(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.cj.g(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.m.cj.run(Unknown Source)
尝试暂时删除地图标记自定义信息窗口的位图,等等,并没有真正影响。替换地图片段时,每次内存都会增加和增加。
任何想法如何处理/破坏旧地图,尝试过多种方式并查看了几个问题,但没有找到合适的解决方案。
答案 0 :(得分:-1)
在清单文件中添加
android:largeHeap="true"
欲了解更多信息,请阅读本文, http://developer.android.com/guide/topics/manifest/application-element.html