2013-01-07 10 views
7

Próbuję zaimplementować mapę przy użyciu Androida Maps API v2 z biblioteką pomocy Androida, testowanie na Droid2 z systemem Android 2.2 Wszystko działa dobrze, ale tylko przez krótki okres czasu. Po dodaniu 10 znaczników i próbie przesunięcia mapy lub powiększenia/pomniejszenia co sekundę są zgłaszane błędy powodujące przerażający wyjątek i następuje awaria. Nic nie robię w tle. Jest dosłownie tylko mapa i 10 znaczników.Podstawowy interfejs API Android v2 MapActivity outOfMemory z 10 znacznikami

Dziękuję za porady.

Martin

Błędy:

01-07 03:03:23.221: DEBUG/dalvikvm(12914): GC_FOR_MALLOC freed 38714 objects/1797752 bytes in 74ms 
01-07 03:03:23.378: ERROR/dalvikvm-heap(12914): 1048576-byte external allocation too large for this process. 
01-07 03:03:23.378: ERROR/GraphicsJNI(12914): VM won't let us allocate 1048576 bytes 
01-07 03:03:23.378: WARN/System.err(12914): OutOfMemory 
01-07 03:03:23.432: DEBUG/dalvikvm(12914): GC_EXPLICIT freed 8793 objects/601896 bytes in 58ms 
01-07 03:03:23.862: ERROR/dalvikvm-heap(12914): 1048576-byte external allocation too large for this process. 
01-07 03:03:23.862: ERROR/GraphicsJNI(12914): VM won't let us allocate 1048576 bytes 
01-07 03:03:23.870: WARN/System.err(12914): OutOfMemory 

Wyjątek:

01-07 02:45:12.432: ERROR/dalvikvm-heap(12315): 1048576-byte external allocation too  large for this process. 
01-07 02:45:12.432: ERROR/GraphicsJNI(12315): VM won't let us allocate 1048576 bytes 
01-07 02:45:12.464: WARN/dalvikvm(12315): threadid=17: thread exiting with uncaught exception (group=0x400208b0) 
01-07 02:45:12.479: ERROR/AndroidRuntime(12315): FATAL EXCEPTION: GLThread 18 
    java.lang.OutOfMemoryError: bitmap size exceeds VM budget 
    at android.graphics.Bitmap.nativeCreate(Native Method) 
    at android.graphics.Bitmap.createBitmap(Bitmap.java:498) 
    at maps.r.h.a(Unknown Source) 
    at maps.cp.a.a(Unknown Source) 
    at maps.cp.a.a(Unknown Source) 
    at maps.cp.a.b(Unknown Source) 
    at maps.m.n.a(Unknown Source) 
    at maps.m.at.a(Unknown Source) 
    at maps.a.bq.a(Unknown Source) 
    at maps.a.w.a(Unknown Source) 
    at maps.a.w.a(Unknown Source) 
    at maps.a.w.a(Unknown Source) 
    at maps.a.ba.m(Unknown Source) 
    at maps.a.ba.run(Unknown Source) 

Układ:

<fragment xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:map="http://schemas.android.com/apk/res-auto" 
     class="com.google.android.gms.maps.SupportMapFragment" 
     android:id="@+id/map" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     map:cameraTargetLat="49.85" 
     map:cameraTargetLng="15.42" 
     map:mapType="normal" 
     map:uiCompass="true" 
     map:uiRotateGestures="true" 
     map:uiScrollGestures="true" 
     map:uiTiltGestures="true" 
     map:uiZoomControls="false" 
     map:uiZoomGestures="true" 
    /> 

Markery:

for (int i = 0; i < 9; i++) { 

    mMap.addMarker(new MarkerOptions() 
      .position(new LatLng(49d, 16d)) 
      .draggable(true) 
      .title("BUUUUU") 
      .snippet("TEST")); 
    } 
+0

Może to być spowodowane tym, że dodajesz 10 znaczników tylko na jednej pozycji. Po prostu spróbuj dodać znacznik na różnych pozycjach. – GrIsHu

+1

to tylko przypadek testowy, zachowuje się tak samo, gdy znaczniki znajdują się w różnych miejscach (byłby to banalny błąd google jeśli nie) – martenson

+1

Używam tego samego problemu na tym urządzeniu. Oczywiście mogę narysować 50 znaczników, ale po 10 nieczystości mapy umiera. Obserwowałem stertę i nigdy nie korzystałem z całej sterty. Nadal miałem 5 MB, ale zmarł, gdy poprosił o taką samą kwotę jak Twoja aplikacja. Czy czytam ten 1048576-bajt źle? :( – Steven

Odpowiedz

0

Ile wielkość znacznika obrazu? Spróbuj zmniejszyć rozmiar znacznika

+1

to jest domyślny znacznik, nie zmieniłem go – martenson

Powiązane problemy