0

我有一个应用程序可以在设备上收听新照片,调整它们的大小并上传到云端。

当我在拍摄照片之间有短暂的停顿(例如 1 秒)时,一切都很好,但是当我快速拍摄照片而没有任何停顿时,我遇到了异常:

java.io.FileNotFoundException: /storage/emulated/0/DCIM/Camera/IMG_20180116_150824_1.jpg (No such file or directory)

在我的compressAndResize函数中。

在那个函数中,我正在做这样的事情:

 private static File compressAndResizeImage(File sourceFile, File destination) throws IOException {

    File compressedAssetFile = new File(destination, sourceFile.getName());

    if (!compressedAssetFile.getParentFile().exists()) {
        //noinspection ResultOfMethodCallIgnored
        compressedAssetFile.getParentFile().mkdirs();
    }
    //noinspection ResultOfMethodCallIgnored
    compressedAssetFile.getParentFile().createNewFile();

    FileOutputStream fileOutputStream = null;

    int width;
    int height;

    try {
        fileOutputStream = new FileOutputStream(compressedAssetFile);

        Bitmap source = BitmapFactory.decodeFile(sourceFile.getAbsolutePath());

        int sourceWidth = source.getWidth();
        int sourceHeight = source.getHeight();
...

BitmapFactory.decodeFile方法中抛出异常。

我不知道为什么当我快速拍照时会发生这种行为。

有人可以解释我为什么会这样吗?

提前致谢!

4

0 回答 0