Android 映射API内存泄漏

Android 映射API内存泄漏,android,api,dictionary,memory,memory-leaks,Android,Api,Dictionary,Memory,Memory Leaks,在我的项目中,我有MainActivity A(处理应用程序导航)、fragment 1(gridview)、fragment 2(map) 我使用mainactivity中的回调从网格片段(显示所选条目的标记)调用map fragment,这将替换放置一些参数的map fragment(用于标记详细信息) 到目前为止一切正常,但在特定时间调用map fragment getting outofmemory异常后: FATAL EXCEPTION: GLThread 400 Process: X

在我的项目中,我有MainActivity A(处理应用程序导航)、fragment 1(gridview)、fragment 2(map)

我使用mainactivity中的回调从网格片段(显示所选条目的标记)调用map fragment,这将替换放置一些参数的map fragment(用于标记详细信息)

到目前为止一切正常,但在特定时间调用map fragment getting outofmemory异常后:

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)
尝试暂时删除地图标记自定义信息窗口等的位图,但实际上没有影响。每次替换贴图片段时,内存都会不断增加


任何关于如何处理/销毁旧地图的想法,都尝试过几种方法并研究了一些问题,但没有找到合适的解决方案。

将其添加到清单文件中

 android:largeHeap="true"
欲了解更多信息,请阅读此,

通常只有在同一布局上同时绘制两个贴图时才会发生这些异常。请检查是否调用了两次create map方法??您可以使用该方法检测内存泄漏。您是指getMapAsync()方法吗?在onResume中只调用一次。还尝试在onDestroy中按map.clear()销毁map,但与在其他问题中读取的一样,这不会产生任何效果。如果在gridview中加载图像,请缩小图像并加载它们,这将减少内存使用量。如我所述,暂时删除位图,但无法解决问题。甚至使用毕加索绘制gridview图像