Android Maps V2 内存泄漏三星设备

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

我正在用我的头撞砖墙来解决我可以在三星设备上重现的内存泄漏问题,至少是 Galaxy S4、S5 和 Android 版本 4.4.2。

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

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

即使通过将选项卡 fragment 替换为没有任何花哨对象(即标记、覆盖等)的 SupportMapFragment 来缩小范围(并使用 v4 支持库的最新版本),我也可以在我的 Samsung S4 设备上重现调试问题. 在我的三星 S4 Android 版本 4.4.2 上调试来自 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)

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

最佳答案

看看这个 issue谷歌已经承认了这一点。它与 Google Play 服务 6.1.09 推出的更改有关,但它仍然存在于 6.1.11 中。

人们“盯着”这个问题会帮助它得到解决。

关于Android Maps V2 内存泄漏三星设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125008/

相关文章:

android - 视差和引脚折叠模式在折叠工具栏布局中不起作用

ios - AVAudioRecorder 小内存泄漏

objective-c - cocoa 64 位二进制文​​件泄漏内存? (释放 NSData 不会释放内存)

html - 浏览器可以毫无问题地显示 html 元素的数量是否有任何限制?

android - 在 Android 中覆盖 ArrayAdapter

android - 如何获取Android接近传感器的当前值?

安卓播放服务6.5 : LocationClient is missing

android - 如果我在 Android 中使用 Games.API,如何获取服务器的访问 token ?

android - 谷歌附近连接 API : measure signal strength

android - 将图像放在 ImageView 的左侧,以防 ImageView 占据整个屏幕宽度?