Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android异常:java.io.IOException:打开失败:EACCES(权限被拒绝)_Android_Permissions_Camera_Ioexception - Fatal编程技术网

Android异常:java.io.IOException:打开失败:EACCES(权限被拒绝)

Android异常:java.io.IOException:打开失败:EACCES(权限被拒绝),android,permissions,camera,ioexception,Android,Permissions,Camera,Ioexception,出于某种奇怪的原因,我一直面临着不同类型的Android设备的问题,将捕获的图像保存在设备存储器中 这里是详细的错误日志,是我实际得到的 java.io.IOException: open failed: EACCES (Permission denied) at java.io.File.createNewFile(File.java:940) at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.j

出于某种奇怪的原因,我一直面临着不同类型的Android设备的问题,将捕获的图像保存在设备存储器中

这里是详细的错误日志,是我实际得到的

java.io.IOException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:940)
at com.parkhya.pick_for_shareAflash.HomeActivity.resizeImage(HomeActivity.java:456)
at com.parkhya.pick_for_shareAflash.HomeActivity.onActivityResult(HomeActivity.java:393)
Caused by: libcore.io.ErrnoException: open failed: EACCES (Permission denied)
at java.io.File.createNewFile(File.java:933)
尽管如此,所有其他安卓应用程序,如Instagram和其他应用程序,都能够在设备上保存相机点击的图像。
任何人,请您建议,为了让我的应用程序在SD卡中保存相机图片,我应该做什么。

请添加允许应用程序写入外部存储的权限

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

允许应用程序从外部存储器读取数据

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
任何声明WRITE_EXTERNAL_存储权限的应用程序都会被隐式授予此权限


此权限从API级别19开始强制执行。在API级别19之前,此权限不强制执行,并且所有应用程序仍然可以从外部存储读取。您可以在运行Android 4.1或更高版本的设备上,通过在“设置”应用程序的“开发者选项”下启用“保护USB存储”来测试您的应用程序。我发现的解决方案是

编辑仿真器 1.转到android虚拟设备管理器,然后编辑模拟器 2.为受尊重的仿真器设置100 MB的Sd卡,然后说Ok 3.保存并关闭emulator并启动 4.保存的路径是单击DDMS mnt/sdcard/yourfilename
它对我有效应用程序没有给出错误并且正在工作这可能会帮助你。在SD卡上写入文件时,我面临同样的问题。我已设置了写入文件所需的所有权限,但我使用的文件对象如下:

错:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+fileName);
正确:

File myFile = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), fileName);

这意味着路径错误。

是否将写权限添加到清单文件?@Rafa Firenze。谢谢你的评论。如果它解决了你的问题,请接受它作为公认的答案,这样它也会帮助其他开发者。这不是我的问题,我给了你一个肯定的答案(+1)谢谢@Smeet它帮助了我!!:)错误的文件需要分隔符:
File myFile=new File(Environment.getExternalStorageDirectory().getAbsoluteFile()+“/”+fileName)