我收到此错误
Unable to decode stream: java.io.FileNotFoundException: /content:/media/external/images/media/119 (No such file or directory)
在变量takenImageUri
上调用此函数(using this library)时:
refBigImage.putFile(
Uri.fromFile(
Resizer(this.context)
.setTargetLength(80)
.setQuality(100)
.setOutputFormat("PNG")
.setOutputFilename(randomName + "Small")
.setOutputDirPath(storagePath)
.setSourceImage(File(takenImageUri))
.resizedFile
)
)
我从拍摄照片的前一个片段中获取uri id的方式。这是创建它的实际功能。
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中,并且显示得很好,因此我知道路径是正确的。如果此文件存在,为什么会给我这个错误?
答案 0 :(得分:1)
我收到此错误无法解码流:java.io.FileNotFoundException:/ content:/ media / external / images / media / 119(无此类文件或目录)
那是因为它不是文件。您正在将content
Uri
的字符串表示形式传递给需要文件系统路径的对象。 Uri
是您(或某物)从MediaStore
获得的值。