в моем приложении у меня есть база данных, где я храню изображения, но когда я пытаюсь получить изображение в битмап, logcat показывает OutOfMemoryError. Эта ошибка не появляется, когда я извлекаю только одно изображение из базы данных (когда я не использую do while цикл мой код работает хорошо) .please помочь, я новичок в android.OutOfMemoryError: Не удалось выделить распределение байтов 82956 с 30836 бесплатными байтами и 30 КБ до OOM?
этот класс попытаться получить изображения из БД:
class Abc {
ArrayList <ForBitMap> pic;
Abc() {
pic = new Abc < >();
DataBaseClass objOfDataBaseClass = new DataBaseClass(context);
mCursor = objOfDataBaseClass.showData();
if (mCursor.moveToNext()) {
do {
byte[] mg = null;
mg = mCursor.getBlob(mCursor.getColumnIndex("image"));
Bitmap bitmap = BitmapFactory.decodeByteArray(mg, 0, mg.length);
pic.add(new ForBitMap(bitmap));
} while (mCursor.moveToFirst());
}
}
это использование класса для хранения значения в ArrayList (ArrayList ПОС;) Статус
class ForBitMap{
Bitmap btmp;
ForBitMap(Bitmap btmp){
this.btmp=btmp;
}
}
logat является:
java.lang.OutOfMemoryError: Failed to allocate a 82956 byte allocation with 30836 free bytes and 30KB until OOM
попробовать с помощью largeHeap. https://developer.android.com/reference/android/R.styleable.html#AndroidManifestApplication_largeHeap –
@SagarNayak, когда я использую bigheep = true logcat показывает ту же ошибку –
какая ошибка у вас возникла? –