Soru & Cevap

Android Studio Yetersiz Bellek

21.03.2020 - 10:05

Merhaba arkadaşlar, "ArkaPlan Silme" uygulaması yapmak istiyorum, resmi silme ve tekrar düzeltme işleminde başarılı oldum, ancak geri al ve yinele de problem yaşıyorum, şöyleki resim silindiğinde parmağımı kaldırdığımda resmin ss sinin alıp Arraylist e aktarmak istedim, parmağımı 100 defa kaldırdım herhangi bir sorun  olmadı, ancak 101. defa kaldırdığımda "out of memory" hatası aldım, biraz araştırma yaptım Manifest dosyasına "largeHeap = true" satırını ekledim işe yaramadı, Gradle dosyasına "org.gradle.jvmargs= 4G" satırını ekledim yine işe yaramadı, bu sorunu nasıl çözebilirim?


resmin ss sini aldığım kod;

private Bitmap getBitmapFromView(View view) {
        Bitmap returnedBitmap = Bitmap.createBitmap(view.getWidth(), view.getHeight(),Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(returnedBitmap);
        Drawable bgDrawable =view.getBackground();
        if (bgDrawable!=null) {
            //has background drawable, then draw it on the canvas
            bgDrawable.draw(canvas);
        }   else{
            //does not have background drawable, then draw white background on the canvas
            canvas.drawColor(Color.White);
        }
        view.draw(canvas);
        return returnedBitmap;
    }

10 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user f.erenyucal
f.erenyucal
16.02.2023 - 01:27

Merhabalar! 

"Out of memory" hatası, uygulamanızın bellek sınırlarını aştığınızda meydana gelir. Bu hatayı çözmek için aşağıdaki önerileri deneyebilirsiniz:

  1. Bitmap boyutunu azaltın: Bitmap boyutu ne kadar büyük olursa, o kadar çok bellek kullanır. Resim boyutlarını düşürmek veya sıkıştırmak, bellek tüketimini azaltabilir

  2. Bitmap nesnesini geri dönüştürün: Bitmap nesnesini kullanımınız bittiğinde derhal geri dönüştürün. Bu, bellek sınırlarını aşmanıza engel olacaktır. "recycle()" yöntemini kullanarak geri dönüştürme yapabilirsiniz

  3. BitmapFactory.Options kullanın: BitmapFactory.Options sınıfı, resim dosyalarını özelleştirilmiş ayarlarla yüklemenize olanak tanır. Örneğin, "inSampleSize" özelliğini kullanarak resmin boyutunu yüzde kaç oranında azaltabileceğinizi belirtebilirsiniz

  4. İşlem yaparken resimleri tek tek yükleyin: Tüm resimleri aynı anda yüklemek yerine, işlem yapmak için tek tek yükleyin ve işlemin bitiminde hafızadan silin

  5. Cihazın bellek kullanımını izleyin: Android Studio'nun Profiler aracını kullanarak, uygulamanızın bellek kullanımını izleyebilir ve gereksiz bellek tüketimini tespit edebilirsiniz