Geçtiğimiz birkaç gün içinde benzer gönderiler okudum, ancak bu soruna özel olarak cevap veren hiç bir şey yok. Hibrit haritanın yaklaşık 2 dakikalık saldırgan haritasının kaydırılması ve yakınlaştırılmasıyla bir OOM sorunu yaşamaya başladım. Uygulama ayrıca, ilk arızadan sonra OOM'a ulaşmak için daha az zaman harcadığı için, çökmeden sonra belleğe tutunmuş gibi görünüyor. Kodu bir MapFragment ile yalnızca bir Faaliyet için ölçeklendirdim ve yine de aynı OOM'u aldım. Sorunu denemek ve yalıtmak için DDMS ve MAT kullandım, android:largeHeap="true"
ek olarak sadece OOM geciktiriyor. Ekran yönlendirme bir sorun değil çünkü Manifest'ime android:screenOrientation="portrait"
ayarlıyorum. Herhangi bir yardım takdir edilecektir.MapFragment Google Maps API v2 Bellek Yetersiz Hata/Bellek Sızıntısı
Güncelleme 2014/08/25: This is supposed to be fixed back in May 2013?
Güncelleme 2014/09/06: Hala başarı, sadece iyi bir seçenek Normal
yerine Hybrid
kullanmaktır. GC görüntü olmadan devam edebilir gibi görünüyor.
Benzer Mesajlar:
Out of memory error when using Google Maps API
Memory leak for Android Google Maps API v2
Android Google maps API, OutOfMemoryError
MainActivity:
public class MainActivity_blank extends Activity {
GoogleMap mMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main_activity_blank);
setContentView(R.layout.map_fragment);
setUpMapIfNeeded();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main_activity_blank, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private void setUpMapIfNeeded() {
// Do a null check to confirm that we have not already instantiated the map.
if (mMap == null) {
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
// Check if we were successful in obtaining the map.
if (mMap != null) {
// The Map is verified. It is now safe to manipulate the map.
//startUsingMap();
mMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
}
}
}
}
logcat:
08-26 17:15:29.302: I/dalvikvm-heap(19642): Forcing collection of SoftReferences for 67108880-byte allocation
08-26 17:15:29.372: D/dalvikvm(19642): GC_BEFORE_OOM freed 822K, 65% free 37523K/106080K, paused 78ms, total 78ms
08-26 17:15:30.582: W/dalvikvm(19642): chunk is too big to transmit (length=49579336, 48435 bytes)
08-26 17:15:31.532: E/dalvikvm-heap(19642): Out of memory on a 67108880-byte allocation.
08-26 17:15:31.532: I/dalvikvm(19642): "GLThread 14876" prio=5 tid=19 RUNNABLE
08-26 17:15:31.532: I/dalvikvm(19642): | group="main" sCount=0 dsCount=0 obj=0x42c120d8 self=0x787e8438
08-26 17:15:31.532: I/dalvikvm(19642): | sysTid=19729 nice=1 sched=0/0 cgrp=apps handle=2021558416
08-26 17:15:31.532: I/dalvikvm(19642): | state=R schedstat=(51120733635 13119596807 80537) utm=1904 stm=3208 core=0
08-26 17:15:31.532: I/dalvikvm(19642): at android.graphics.Bitmap.nativeCreate(Native Method)
08-26 17:15:31.532: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:924)
08-26 17:15:31.532: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
08-26 17:15:31.532: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:868)
08-26 17:15:31.532: I/dalvikvm(19642): at opl.a((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at okg.a((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at opy.a((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at opx.a((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at ojx.a((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at ojx.b((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at otq.k((null):-1)
08-26 17:15:31.532: I/dalvikvm(19642): at otq.run((null):-1)
08-26 17:15:31.542: W/System.err(19642): OutOfMemory
08-26 17:15:31.642: D/dalvikvm(19642): GC_EXPLICIT freed 4803K, 64% free 38238K/106080K, paused 6ms+11ms, total 102ms
08-26 17:15:32.822: W/dalvikvm(19642): chunk is too big to transmit (length=49444016, 48303 bytes)
08-26 17:15:33.682: D/dalvikvm(19642): GC_FOR_ALLOC freed 3728K, 66% free 36916K/106080K, paused 65ms, total 65ms
08-26 17:15:34.752: W/dalvikvm(19642): chunk is too big to transmit (length=49398928, 48259 bytes)
08-26 17:15:35.462: I/dalvikvm-heap(19642): Forcing collection of SoftReferences for 67108880-byte allocation
08-26 17:15:35.512: D/dalvikvm(19642): GC_BEFORE_OOM freed 413K, 66% free 36502K/106080K, paused 52ms, total 52ms
08-26 17:15:36.742: W/dalvikvm(19642): chunk is too big to transmit (length=49398928, 48259 bytes)
08-26 17:15:37.282: E/dalvikvm-heap(19642): Out of memory on a 67108880-byte allocation.
08-26 17:15:37.282: I/dalvikvm(19642): "GLThread 14876" prio=5 tid=19 RUNNABLE
08-26 17:15:37.282: I/dalvikvm(19642): | group="main" sCount=0 dsCount=0 obj=0x42c120d8 self=0x787e8438
08-26 17:15:37.282: I/dalvikvm(19642): | sysTid=19729 nice=1 sched=0/0 cgrp=apps handle=2021558416
08-26 17:15:37.282: I/dalvikvm(19642): | state=R schedstat=(54770836691 14106993077 84458) utm=1996 stm=3481 core=0
08-26 17:15:37.282: I/dalvikvm(19642): at android.graphics.Bitmap.nativeCreate(Native Method)
08-26 17:15:37.282: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:924)
08-26 17:15:37.282: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
08-26 17:15:37.282: I/dalvikvm(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:868)
08-26 17:15:37.282: I/dalvikvm(19642): at opl.a((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at okg.a((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at opy.a((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at opx.a((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at ojx.a((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at ojx.b((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at otq.k((null):-1)
08-26 17:15:37.282: I/dalvikvm(19642): at otq.run((null):-1)
08-26 17:15:37.432: W/dalvikvm(19642): threadid=19: thread exiting with uncaught exception (group=0x4178cda0)
08-26 17:15:37.442: E/AndroidRuntime(19642): FATAL EXCEPTION: GLThread 14876
08-26 17:15:37.442: E/AndroidRuntime(19642): Process: com.example.maptest, PID: 19642
08-26 17:15:37.442: E/AndroidRuntime(19642): java.lang.OutOfMemoryError
08-26 17:15:37.442: E/AndroidRuntime(19642): at android.graphics.Bitmap.nativeCreate(Native Method)
08-26 17:15:37.442: E/AndroidRuntime(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:924)
08-26 17:15:37.442: E/AndroidRuntime(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:901)
08-26 17:15:37.442: E/AndroidRuntime(19642): at android.graphics.Bitmap.createBitmap(Bitmap.java:868)
08-26 17:15:37.442: E/AndroidRuntime(19642): at opl.a(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at okg.a(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at opy.a(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at opx.a(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at ojx.a(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at ojx.b(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at otq.k(Unknown Source)
08-26 17:15:37.442: E/AndroidRuntime(19642): at otq.run(Unknown Source)
08-26 17:15:37.522: D/AbsListView(19642): unregisterIRListener() is called
08-26 17:15:38.092: D/AbsListView(19642): onDetachedFromWindow
08-26 17:15:38.092: D/AbsListView(19642): unregisterIRListener() is called
08-26 17:15:38.102: D/AbsListView(19642): onVisibilityChanged() is called, visibility : 8
08-26 17:15:38.102: D/AbsListView(19642): unregisterIRListener() is called
Emulator veya aygıt? – Simas
@ user3249477 - Cihazda çalışıyor. GS4 ve GS5'te hem de çöküyor. – spidermonkey
Oh nevermind, 'agresif haritanın kaydırma ve yakınlaştırma' ~ 2 dakika bölümünü okumadı ... – Simas