Android 尝试使用用户选择的当前日期和名称保存文件,但我收到错误:打开失败:EACCES(权限被拒绝)

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

我试图在emulator中保存一个文件,文件名选择用户和当前日期

但我收到一条错误消息,上面写着:open失败:EACCES(权限被拒绝)

如何修复此错误我将感谢任何帮助

SingInSActivity.java 该权限将添加到

清单文件

请在您的清单中添加以下内容:

<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";