当前位置: 首页 > 工具软件 > card.io > 使用案例 >

android java.io.FileNotFoundException: xxxx (Permission denied)解决办法略解

公西承
2023-12-01

目录

1、无SD卡读写权限

2、有了权限,但还是 报这个错,

① 、请先chmod -R 777   目录 试试

②、chmod后还是不行,可能是开启了selinux导致的


出现 android java.io.FileNotFoundException: xxxx (Permission denied)的原因:

1、无SD卡读写权限

请在AndroidManifest.xml里配置权限声明

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

并在代码里申请权限

ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}, 0 );

这里只是简单处理了申请,更详细的请自己搜索文章 参考着写;

(debug阶段 可以长按应用图标,打开“应用信息”-“权限”里直接赋予“存储空间权限”直接在”应用)

2、有了权限,但还是 报这个错,

① 、请先chmod -R 777   目录 试试

②、chmod后还是不行,可能是开启了selinux导致的

logcat里显示了如下错误

2022-09-09 14:09:07.641 7964-7964/com.unmidemo W/ com.unmidemo: type=1400 audit(0.0:162189): avc: denied { search } for name="com.unmidemo" dev="mmcblk0p87" ino=287852 scontext=u:r:untrusted_app:s0:c169,c256,c512,c768 tcontext=u:object_r:app_data_file:s0:c168,c256,c512,c768 tclass=dir permissive=0

重点已经加粗,许可失败。

//adb命令查看selinux状态
# adb shell getenforce

------------
返回的状态:
Enforcing //权限打开
Permissive //权限关闭
---------
//root 下执行
# adb shell setenforce 0 //权限关闭
# adb shell setenforce 1 //权限打开

root下执行  adb shell setenforce 0,关闭selinux 后重试,发现正常了。

 类似资料: