【问题标题】:Google Maps V2 and HTC Wildfire S: Outofmemory errorGoogle Maps V2 和 HTC Wildfire S:内存不足错误
【发布时间】:2013-07-23 16:24:33
【问题描述】:

我的应用使用 Google Maps V2。 在其他设备上一切正常,但是当我在 HTC Wildfire S 上打开地图活动时,在地图导航几分钟后,我收到此错误:

07-23 18:16:08.556: E/AndroidRuntime(3316): FATAL EXCEPTION: vts_com.fedrasoft.craiinforma
07-23 18:16:08.556: E/AndroidRuntime(3316): java.lang.OutOfMemoryError: (Heap Size=16071KB, Allocated=11771KB, Bitmap Size=4445KB)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.ap.d.a(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.i.ct.a(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.k.ah.a(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.k.d.a(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.k.g.handleMessage(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at android.os.Looper.loop(Looper.java:150)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.k.d.b(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.k.ag.b(Unknown Source)
07-23 18:16:08.556: E/AndroidRuntime(3316):     at maps.ap.b.run(Unknown Source)
07-23 18:16:09.427: E/dalvikvm-heap(3316): Out of memory on a 25862-byte allocation.
07-23 18:16:09.437: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11768KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:09.437: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:10.248: E/dalvikvm-heap(3316): Out of memory on a 25058-byte allocation.
07-23 18:16:10.258: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11779KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:10.258: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:10.919: E/dalvikvm-heap(3316): Out of memory on a 38575-byte allocation.
07-23 18:16:10.929: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11789KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:10.929: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:11.659: E/dalvikvm-heap(3316): Out of memory on a 25050-byte allocation.
07-23 18:16:11.669: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11763KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:11.669: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:12.020: E/dalvikvm-heap(3316): Out of memory on a 25862-byte allocation.
07-23 18:16:12.030: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11765KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:12.030: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:12.791: E/dalvikvm-heap(3316): Out of memory on a 38575-byte allocation.
07-23 18:16:12.801: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11774KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:12.801: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:13.681: E/dalvikvm-heap(3316): Out of memory on a 25862-byte allocation.
07-23 18:16:13.691: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11773KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:13.691: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:14.232: E/dalvikvm-heap(3316): Out of memory on a 25058-byte allocation.
07-23 18:16:14.242: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11768KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:14.242: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:14.973: E/dalvikvm-heap(3316): Out of memory on a 38575-byte allocation.
07-23 18:16:14.983: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11781KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:14.983: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB
07-23 18:16:15.333: E/dalvikvm-heap(3316): Out of memory on a 25854-byte allocation.
07-23 18:16:15.343: E/dalvikvm(3316): Out of memory: Heap Size=16071KB, Allocated=11778KB, Bitmap Size=4445KB, Limit=20480KB
07-23 18:16:15.343: E/dalvikvm(3316): Extra info: Footprint=16071KB, Allowed Footprint=16071KB, Trimmed=1172KB

我的地图上有数百个标记,这可能会使内存饱和?

【问题讨论】:

  • 我猜“数百”个标记可能是导致此错误的原因。您是否尝试从手机中删除某些应用程序并清除 RAM 使用量?
  • @KunalS.Kushwah 手机几乎是“空的”,安装的应用程序很少。我会在导航地图之前尝试清除 RAM,然后通知您。谢谢!
  • 其他测试设备在可用内存方面如何比较?此外,如果您的 Wildfire 仍在运行 stock rom,那么您可能会意识到与 Gingerbread 的香草版本相比,Sense 会吃 一些 Ram。
  • @KunalS.Kushwah 清除 RAM 并没有解决问题。
  • @Chilledrat HTC Wildfire S 拥有 384MB 的 RAM(在启动我的应用程序之前大约有 258MB 的空闲空间),比其他可以正常使用地图的设备要多!我认为该设备正在运行库存 ROM。我怎么知道 Sense 是否会吃掉一些 RAM?

标签: android android-maps-v2 android-memory


【解决方案1】:

我没有 Wildfire S 可以检查,但我想如果你添加这个:

Toast.makeText(this, String.valueOf((Runtime.getRuntime().maxMemory() / 1024 / 1024)),
       Toast.LENGTH_SHORT).show();

在您的应用程序开始的某个位置并在设备上运行它,toast 将显示 16。这是您的应用程序可以分配的最大堆 (MB)。可能您的其他测试设备有不同的限制。例如,我的 Desire HD(运行 PACman JellyBean)的限制是 48MB。对于 AVD,可以将此限制设置为配置的一部分。在某些情况下可以覆盖此限制,How to increase heap size of an android application? 提供了一些很好的信息。

您是否需要这么多的 Ram 以及更多是另一个问题,如果没有关于代码和设计的更多信息,我们无法推测。但是,请查看最近的问题android maps, markers and memory leaks

最后,如果这一切对您来说都是新的,那么仍然值得观看 Google IO 2011 演示文稿:Memory Management for Android Apps.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-13
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-25
    • 2012-11-23
    • 2014-06-02
    • 2013-11-27
    相关资源
    最近更新 更多