APK hataları

OutOfMemoryError çökmesi

Hata metni

java.lang.OutOfMemoryError: Failed to allocate a 33177612 byte allocation with 25165824 free bytes and 24MB until OOM

Neden

Uygulama cihazın verdiği bellek sınırını aşıyor. En sık büyük görseller, sızan nesneler ya da büyük listeler suçludur.

Adım adım çözüm

  1. dumpsys meminfo ile bellek kullanımını izle.
  2. Görselleri tam boyutta değil ekran boyutunda yükle (Glide, Coil ya da inSampleSize).
  3. Activity'ye statik referans ve silinmeyen dinleyiciler gibi sızıntıları ara (LeakCanary).
  4. Uzun listelerde RecyclerView ve sayfalama kullan.
  5. largeHeap yalnız geçici çaredir, asıl nedeni düzelt.

Örnek komutlar

adb shell dumpsys meminfo com.example.app
adb shell am dumpheap com.example.app /data/local/tmp/h.hprof
# manifest
<application android:largeHeap="true" ...>

Tekrarlanmasın diye

Debug'da LeakCanary çalıştır, her büyük özellikten sonra bellek profilini kontrol et.

Yazar ve lisans: Nibras Code