FileNotFoundException в функции, в то время как другая функция использует файл без проблем - PullRequest
0 голосов
/ 18 марта 2019

Я получаю эту ошибку Unable to decode stream: java.io.FileNotFoundException: /content:/media/external/images/media/119 (No such file or directory)

для переменной takenImageUri При вызове этой функции ( с использованием этой библиотеки ):

refBigImage.putFile(
            Uri.fromFile(
                Resizer(this.context)
                    .setTargetLength(80)
                    .setQuality(100)
                    .setOutputFormat("PNG")
                    .setOutputFilename(randomName + "Small")
                    .setOutputDirPath(storagePath)
                    .setSourceImage(File(takenImageUri))
                    .resizedFile
            )
)

СпособЯ получаю этот идентификатор из предыдущего фрагмента, где была сделана фотография.Это функция в действии, которая его создает.

private fun takePhoto() {
        val photoResult = fotoapparat?.takePicture()

        fun getImageUri(inContext: Context, inImage: Bitmap): Uri {

            val bytes = ByteArrayOutputStream()

            inImage.compress(Bitmap.CompressFormat.PNG, 100, bytes)

            val path = MediaStore.Images.Media.insertImage(inContext.contentResolver, inImage, "Title", null)

            return Uri.parse(path)
        }


        photoResult
            ?.toBitmap()
            ?.whenAvailable { bitmapPhoto ->
                val uriImage = getImageUri(this.context!!, bitmapPhoto!!.bitmap)

                val action =
                    CameraPreviewFragmentDirections.actionCameraPreviewFragmentToApproveImageFragment(uriImage.toString())
                findNavController(camera_nav_host_fragment).navigate(action)
            }
    }

Этот файл является изображением, и перед вызовом этой функции я загружаю изображение в ImageView, и оно прекрасно отображается, поэтому я знаю, чтопуть правильный.Почему эта ошибка дает мне эту ошибку, если этот файл существует там?

1 Ответ

1 голос
/ 18 марта 2019

Я получаю эту ошибку Невозможно декодировать поток: java.io.FileNotFoundException: / content: / media / external / images / media / 119 (Нет такого файла или каталога)

Это потому, что это не файл.Вы передаете строковое представление content Uri чему-то, что требует пути файловой системы.Это Uri является значением, которое вы (или что-то) получили от MediaStore.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...