Android 尝试使用用户选择的当前日期和名称保存文件,但我收到错误:打开失败:EACCES(权限被拒绝)
我试图在emulator中保存一个文件,文件名选择用户和当前日期 但我收到一条错误消息,上面写着:open失败:EACCES(权限被拒绝) 如何修复此错误我将感谢任何帮助 SingInSActivity.java 该权限将添加到 清单文件Android 尝试使用用户选择的当前日期和名称保存文件,但我收到错误:打开失败:EACCES(权限被拒绝),android,runtime-error,fileoutputstream,Android,Runtime Error,Fileoutputstream,我试图在emulator中保存一个文件,文件名选择用户和当前日期 但我收到一条错误消息,上面写着:open失败:EACCES(权限被拒绝) 如何修复此错误我将感谢任何帮助 SingInSActivity.java 该权限将添加到 清单文件 请在您的清单中添加以下内容: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 您很可能也需要阅读,因此需要: <uses-permi
请在您的清单中添加以下内容:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
您很可能也需要阅读,因此需要:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
还请注意,SD卡很可能具有不同的允许字符,因此您可能需要替换所有“\\?*仿真程序SD卡大小应定义
您需要编辑您的AVD
,为其分配SD卡大小。当然,您需要启动AVD管理器
这是您添加它的屏幕:
更新后,包括您的意见
你几乎错过了路径分隔器
String sdPath = Environment.getExternalStorageDirectory()
.getAbsolutePath() + fileName + ".txt";
必须改为
String sdPath = Environment.getExternalStorageDirectory()
.getAbsolutePath() +"/"+ fileName + ".txt";
您试图写入的文件名是什么?可能存在非法字符吗?用户在弹出警报对话框后选择文件名,并要求他输入文件名,然后系统将在名称和当前日期和时间下添加2,格式为“yyyy/MM/dd\u HH:MM:ss”“您可以从这里看到哪些是允许的字符。我使用的是genymotion emulator,这是emulator内存大小的规格:2048 MB,android版本4.3,数据存储容量:16384 MB。我以前从未使用过genymotion。我敢打赌,数据存储容量是用于内部存储的。他们的文档/手册可能会提供更多信息。我现在尝试使用谷歌的avd,创建了一个SD大小为40 MB的avd,当我尝试启动并保存该文件时,出现了一个新错误:Open failed:EROFS(只读文件系统)请针对您遇到的新错误提出一个新问题。我猜你是想在FS上的某个地方写东西,而你没有写烫发。如果我的答案对您有帮助,请接受/投票。您是否在AVD创建中创建了SD卡大小?
String sdPath = Environment.getExternalStorageDirectory()
.getAbsolutePath() +"/"+ fileName + ".txt";