java - Android打开失败: EACCES (Permission denied) when writing file in data/data/package/files

标签 java android

我遇到异常

java.io.FileNotFoundException: /data/data/XX/files/permissions.xml: open failed: EACCES (Permission denied)

尝试将文件从 SD 卡复制到应用程序数据位置时。我的代码是

File copy = new File((getActivity()
                       .getApplicationContext().getFileStreamPath("permissions.xml")
                        .getPath()));
if (!copy.exists()) {
  try {
    copy.getParentFile().mkdirs();
    copy.createNewFile();
  } catch (Exception err) {
    err.printStackTrace();
  }
}
copyFileUsingChannel(xmlFile, copy);

方法copyFileUsingChannel正在直接调用方法copyFileUsingStream。我在 list 中声明了写入和读取权限

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="XX">

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

    <application
...

我不知道为什么会抛出这个异常。我正在从应用程序包创建文件。应该是由于扩展非应用程序类引起的吗?感谢您的帮助。

编辑:我意识到一个有趣的事实:文件已创建但无法写入内容

最佳答案

您是否授予运行时权限? 这是文档 Request App Permissions

关于java - Android打开失败: EACCES (Permission denied) when writing file in data/data/package/files,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50436693/

相关文章:

android - "eglConfig not initialized"错误,但我没有使用 openGl

android - Android 上安装的 Progressive Web App 的生命周期是多少?

android - 如何将多行插入sqlite android

java - 生成数字对的随机列表时避免重复的方法无法正常工作

java - 如何在JavaFx中使用箭头键更改线条的起点和终点?

java - 选项卡式设计中的 ListView 空指针

java - 带有排序和限制的 mongodb 命令

java - JSF 2 : Facelets composition (template) not rendered for error-page

android - 抽屉导航不滑动

java - 如何在 Android 中将调用转移到语音邮件?