Maps API内存泄漏

时间:2016-03-22 09:53:46

标签: android api dictionary memory memory-leaks

在我的项目中,我有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)

尝试暂时删除地图标记自定义信息窗口的位图,等等,并没有真正影响。替换地图片段时,每次内存都会增加和增加。

任何想法如何处理/破坏旧地图,尝试过多种方式并查看了几个问题,但没有找到合适的解决方案。

1 个答案:

答案 0 :(得分:-1)

在清单文件中添加

 android:largeHeap="true"

欲了解更多信息,请阅读本文, http://developer.android.com/guide/topics/manifest/application-element.html