Не удается открыть определенные изображения - PullRequest
0 голосов
/ 02 июня 2018

У меня есть программа, которая позволяет пользователю выбирать изображения из галереи, сохранять их в базе данных и показывать на экране.Это работает для большинства изображений, но для определенных изображений приложение вылетает.В Logcat нет сообщения об ошибке.Но когда я перезапускаю приложение, я получаю сообщение об ошибке:

Не удалось прочитать строку 0, столбец 1 из CursorWindow.Убедитесь, что курсор инициализирован правильно перед доступом к данным из него.

(протестировано на ANDROID SDK 24)


new AlertDialog.Builder(this).setTitle("Take or Pick?").setMessage("Choose to click a new picture or choose from existing").
        setNegativeButton("CHOOSE PHOTO", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent i = new Intent(
                    Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            startActivityForResult(i, REQUEST_IMAGE_PICKER);
        }
    }).create().show();

Код onActivityResult выглядит следующим образом:

if (requestCode == REQUEST_IMAGE_PICKER && resultCode == RESULT_OK && null != data) {
        Uri selectedImage = data.getData();

        Bitmap bmp= null;
        try {                                                                                       //GET BITMAP FROM URI , TRY CATCH USED TO TACKLE
            bmp = BitmapFactory.decodeStream(getContentResolver().openInputStream(selectedImage));  // IO STREAM FILE NOT FOUND ERROR
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }

        if(cameraTeamStatus==1) {
            img1.setImageBitmap(bmp); //SET IMAGE
            image1_to_save = convertToBlob(bmp); //CONVERT TO BLOB
        }

1 Ответ

0 голосов
/ 04 июня 2018

Этот сбой происходит из-за большого размера снимка, сделанного камерой, и курсор не может его обработать, инициализация курсора не удалась.

Чтобы исправить это, я бы предложил рассмотреть один из следующих способов уменьшения изображенияразмер перед загрузкой Ссылка: 1 , Ссылка: 2 , Ссылка: 3 или вы можете проверить эту ссылку WhatsApp, как Image Compression.

Надеюсь, это поможет!

...