java.io.FileNotFoundException:/storage/emulated/0/Download/somefile.png:打开失败:ENOENT(没有这样的文件或目录);但是文件存在

时间:2019-07-22 21:14:12

标签: java android

我有一个Android应用程序,可在下载目录中生成PNG文件:

Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)

它最多生成3张PNG图像。所有这些图像实际上都是在提到的文件夹中生成的;我可以打开它们,看到其内容;很好。

Download folder content

第一个(GENERAL_DESCRIPTION_TABLE = "table_1.png")装有以下代码:

Uri uri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + GENERAL_DESCRIPTION_TABLE);
bitmap = BitmapFactory.decodeFile(uri.getPath());
bitmap = Etc.resize(bitmap, 500, 500);
canvas.drawBitmap(bitmap, 50, 180, paint);

它已正确加载。

但是当我尝试打开第二个(MEASUREMENT_REPORT_2KHZ = "table_2.png")时:

uri = Uri.parse(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() + File.separator + MEASUREMENT_REPORT_2KHZ);
bitmap = BitmapFactory.decodeFile(uri.getPath());
bitmap = Etc.resize(bitmap, 500, 500);
canvas.drawBitmap(bitmap, 50, 590, paint);

它抛出此异常:

java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference

因为Etc.resize方法接收到空引用。

此消息也会出现:

java.io.FileNotFoundException: /storage/emulated/0/Download/table_2.png: open failed: ENOENT (No such file or directory)

文件 table_2.png 位于下载目录中。

我具有以下权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_INTERNAL_STORAGE"/>

欢迎提出意见和建议。

0 个答案:

没有答案