2013-01-07 17 views
7

Android Destek Kitaplığı ile Android Maps API v2 kullanarak harita uygulamaya çalışıyorum, Android 2.2 ile Droid2 üzerinde test Her şey iyi çalışıyor ama sadece kısa bir süre için. 10 tane işaretçi ekledikten sonra haritayı hareket ettirmeye veya zum yapmaya/uzaklaştırmaya çalışınca, her bir saniyede bir hata oluşur ve sonuçta korkunç istisna ve çarpışma oluşur. Arka planda hiçbir şey yapıyorum. Tam anlamıyla sadece harita ve 10 işaretçi var.Android basic API v2 MapActivity outOfMemory 10 markörlü

Her türlü ipucu için teşekkür ederiz.

Martin

hatalar:

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 

İstisna:

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) 

Düzen:

<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" 
    /> 

İşaretleyiciler: işaretleyici görüntüsünün

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

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

10 işaretçiyi yalnızca tek bir konum ekliyor olmanız olabilir. İşaretçiyi farklı konumlara eklemeyi deneyin. – GrIsHu

+1

sadece bir test çantası, işaretleri farklı yerlerde olduğunda aynı davranır (olmazsa önemsiz bir google hatası olurdu) – martenson

+1

Aynı cihazda da aynı sorunu yaşıyorum. 50 işaretçi çizebilirim, ancak haritanın 10 tadından sonra ölür. Yığını seyrediyordum ve hiç bir zaman kullanıcıların tüm yığınlarını kullanmıyordum. Hala 5mb'im vardı, ancak uygulamanızla aynı miktarda istediğinde öldü. 1048576 baytını yanlış okuyor muyum? :( – Steven

cevap

0

Kaç boyutu? İşaretçi görüntüsünü yeniden boyutlandırmayı deneyin küçük resim

+1

varsayılan işaretleyicidir, onu değiştirmedim – martenson