Это ошибка MapView? - PullRequest
       37

Это ошибка MapView?

7 голосов
/ 28 февраля 2012

Я внедряю приложение, которое использует Google Maps.Во время отладки я обнаружил интересную ошибку, которую вы легко можете воспроизвести (надеюсь).Если вы тестируете пример Hello MapView из Google:

http://developer.android.com/guide/tutorials/views/hello-mapview.html

Ошибка: если вы скользите в любом направлении быстро (попробуйте диагональное направление), в течение некоторого времени вы, вероятно, будетеполучить следующую ошибку:

02-28 15:59:45.138: D/dalvikvm(26484): GC_CONCURRENT freed 2K, 13% free 18870K/21639K,      paused 2ms+4ms
02-28 15:59:45.911: D/dalvikvm(26484): GC_FOR_ALLOC freed 1603K, 20% free 17396K/21639K, paused 14ms
02-28 15:59:45.911: I/dalvikvm-heap(26484): Grow heap (frag case) to 18.546MB for 1560976-byte allocation
02-28 15:59:45.942: D/dalvikvm(26484): GC_CONCURRENT freed 1K, 13% free 18919K/21639K, paused 2ms+2ms
02-28 15:59:54.271: D/dalvikvm(26484): GC_CONCURRENT freed 2794K, 19% free 17649K/21639K, paused 2ms+2ms
02-28 15:59:58.497: D/dalvikvm(26484): GC_CONCURRENT freed 856K, 18% free 17880K/21639K, paused 5ms+3ms
02-28 16:00:04.341: D/dalvikvm(26484): GC_CONCURRENT freed 1003K, 17% free 18063K/21639K, paused 4ms+4ms
02-28 16:00:11.083: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.091: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.614: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.614: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.638: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.646: D/dalvikvm(26484): GC_CONCURRENT freed 1097K, 16% free 18222K/21639K, paused 2ms+6ms
02-28 16:00:11.646: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072
02-28 16:00:11.646: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072

Карта падает.Есть идеи, как это решить?

Ответы [ 2 ]

1 голос
/ 29 декабря 2012

Во многих случаях прерывистое поведение при сбое с помощью MapView можно решить, указав largeHeap в элементе «application» своего манифеста приложения, особенно на устройствах с большим экраном (планшетах).Этот атрибут доступен начиная с уровня API 11 (Android 3.0).

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.ge.android.app"
  android:versionCode="1"
  android:versionName="1.0">
<uses-sdk android:minSdkVersion="12" />

    <application android:icon="@drawable/app" android:label="@string/app_name"
                 android:debuggable="true"
                 android:theme="@style/CustomTheme"
                 android:largeHeap="true">
    ...
    </application>
   ...
</manifest>

См. Также: Руководство разработчика Android - AndroidManifest

1 голос
/ 26 июля 2012

Думаю, что Google Maps вылетает с OutOfMemoryError Я несколько раз ловил его на своем HTC Wildfire.Это может быть легко воспроизведено на устройствах с небольшой памятью кучи.Когда вы скользите (изменяете размер) быстро, вы превышаете всю свою кучу.Подумайте, что сборщик мусора в некоторых случаях не может освободить память так быстро, и вам не хватает памяти.

...