Я пытаюсь загрузить несколько фотографий из базы данных SQLite в мое приложение. Поскольку я использую RecyclerView в своем классе адаптера в этой конкретной строке, где я преобразую байтовый массив в фактическое изображение, я получаю
java .lang.NullPointerException: попытка получить длину нулевого массива
но только когда приложение запускается с моего мобильного телефона. Если я использую эмулятор, все работает отлично. Для преобразования байтового массива в ImageView я использую растровое изображение:
Bitmap imageBitmap = BitmapFactory.decodeByteArray(image, 0, image.length);
mImageIv.setImageBitmap(imageBitmap);
Все мои фотографии сохраняются в формате BLOB, и любые из них не превышают 50 КБ с разрешением 500x500.
Я также пытался конвертировать байты с помощью библиотеки Picasso, но она не работала ни на эмуляторе, ни на моем мобильном телефоне.
Следующим решением был Glide, который дает мне идеальный вывод на эмуляторе, но когда я запускаю приложение со своего телефона, он говорит, что некоторые таблицы не существуют, и это ошибка:
android .database.sqlite.SQLiteException: нет такой таблицы: WHITEWINE (код 1 SQLITE_ERROR [1]):, во время компиляции: SELECT * FROM WHITEWINE
Затем я попытался запустить с другого мобильного устройства (старше моего мобильного телефона), и вот тут я совсем запутался ... Некоторые таблицы с фотографиями загружаются и помещаются в их фрагменты ... Но в остальном, если я попытаюсь открыть эти фрагменты, мое приложение взломает sh, и ошибка будет такой:
java .lang.RuntimeException: Canvas: попытка нарисовать слишком большое (128261340байт) растровое изображение.
Теперь у меня нет идеи, действительно ли это проблема с памятью, потому что мои фотографии сохраняются в типе BLOB или это что то другое?