Я следую за этим tutorial, чтобы сделать снимок, сохранить, масштабировать и использовать его в android. Однако при попытке открыть/получить сохраненное изображение я получаю ошибку Android: open failed: ENOENT (No such file or directory)
. После некоторого исследования я нашел этот пост, который предполагает, что эта проблема связана с файлами, которые содержат цифры в их именах, например мои, которым присвоено имя с текущей меткой времени. Я проверил, что изображения сохраняются в каталоге файлов, и я зашел в систему, чтобы убедиться, что имя файла, которое используется для их получения, совпадает с исходным именем. Вот часть моего кода, который дает ошибку:Android: open failed: ENOENT (Нет такого файла или каталога) Ошибка
private void setPic(ImageView myImageView) {
// Get the dimensions of the View
int targetW = myImageView.getWidth();
int targetH = myImageView.getHeight();
// Get the dimensions of the bitmap
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
int photoW = bmOptions.outWidth;
int photoH = bmOptions.outHeight;
Log.v("IMG Size", "IMG Size= "+String.valueOf(photoW)+" X "+String.valueOf(photoH));
// Determine how much to scale down the image
int scaleFactor = Math.min(photoW/targetW, photoH/targetH);
// Decode the image file into a Bitmap sized to fill the View
bmOptions.inJustDecodeBounds = false;
bmOptions.inSampleSize = scaleFactor;
bmOptions.inPurgeable = true;
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
myImageView.setImageBitmap(bitmap);
}
А вот что каротаж показывает мне:
E/BitmapFactory﹕ Unable to decode stream: java.io.FileNotFoundException: /file:/storage/sdcard0/Pictures/JPEG_20150728_105000_1351557687.jpg: open failed: ENOENT (No such file or directory)
И я пытаюсь открыть файл с именем: JPEG_20150728_105000_1351557687.jpg
Это, вероятно, означает, что каталог в полном пути, который вы используете, не существует: создать его (с помощью .mkdirs(), и _DO не forget_ проверять возвращаемое значение) – fge
@DerGol ... люм это вполне допустимый путь (ну, кроме файловых систем Windows). Конечно, можно задаться вопросом, действительно ли это предназначалось для использования 'file:/...' для URL-адреса файла, или же, что схема должна быть там вообще – fge
@fge ОК, я попрошу лучше: вы храните ваши изображения ** здесь **: '/ file:/storage/sdcard0/...', на Android? –