Android Maps V2内存泄漏三星设备

时间:2014-09-30 15:50:30

标签: android memory-leaks google-play-services google-maps-android-api-2 android-4.4-kitkat

我正在敲打砖墙,内存泄漏问题,我可以在三星设备上重现,至少Galaxy S4,S5和Android版本4.4.2。

在我的应用程序中,我在ActionBarActivity中的片段中使用嵌套的SupportMapFragment,并设置了选项卡导航,我使用onActivityCreated中的ChildFragmentManager手动替换,这是嵌套片段的推荐方法。

在缩放和平移一分钟左右的时候,我可以看到堆越来越大,这最终会导致OOM崩溃我的应用程序。 我正在使用GroundOverlays,我知道谷歌的建议是不要坚持映射对象以防止内存泄漏。

即使通过使用SupportMapFragment替换制表符片段而没有任何花哨的对象(即标记,叠加等)(以及使用v4支持库的最新版本)缩小范围,我仍可以在Samsung S4设备上重现调试问题。 我还可以在使用Android 4.4.2版本的Samsung S4上调试Google上的示例Google Maps API演示应用时重现此问题。

特别是在选择混合地图类型时,堆会快速增长,并且在应用崩溃之前平均需要大约2分钟。

java.lang.OutOfMemoryError
    at android.graphics.Bitmap.nativeCreate(Native Method)
at android.graphics.Bitmap.createBitmap(Bitmap.java:903)
at android.graphics.Bitmap.createBitmap(Bitmap.java:880)
at android.graphics.Bitmap.createBitmap(Bitmap.java:847)
at com.google.maps.api.android.lib6.gmm6.o.c.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.u.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.d.c.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.d.b.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.l.a(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.l.b(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.dc.k(Unknown Source)
at com.google.maps.api.android.lib6.gmm6.o.dc.run(Unknown Source)

有没有人有任何想法或遇到类似的行为?

1 个答案:

答案 0 :(得分:1)

查看Google已确认的issue。它与Google Play Services 6.1.09推出的更改有关,但它仍然存在于6.1.11。

人们“盯着”这个问题将有助于它得到解决。