Android 10以上出现的 android Permission denied 读写权限问题解决方法

原因:

从Android 10 开始,应用即使申请了权限,也只能读写自己外部存储的私有目录,就是Android/data/对应应用包名 下的相关目目录。除此之外任何目录的读写都会被拒绝,并提示android Permission denied。

解决方案

AndroidManifest.xml 文件中,在application标签中添加如下属性android:requestLegacyExternalStorage=“true”
如下


```java
    <application
        android:name=".application.MyApplication"
        android:requestLegacyExternalStorage="true"
  		>

,即可解决

### 解决 Android Studio 中 `Permission Denied` 错误的方法 当遇到 `Permission denied` 错误时,通常是因为应用程序尝试访问受保护资源而未获得适当权限。以下是几种常见情况及其解决方案: #### 1. 文件系统权限设置不当 如果是在处理文件读写操作时遇到了 `Permission denied` 错误,则可能是由于目标路径不存在或程序没有足够的权限来执行所需的操作。 对于这种情况,可以采取以下措施: - **检查并调整目录和文件的权限**:确保应用有权限访问指定位置。可以通过命令行工具修改文件夹及内部文件的权限属性。 ```bash chmod -R 755 /path/to/directory ``` - **确认SD卡挂载状态**:有时外部存储设备可能处于只读模式下被挂载,这会阻止任何试图向其中写入数据的行为。应核实当前状态下是否允许进行读/写活动[^2]。 #### 2. 缺少必要的 Android 权限声明 在开发过程中忘记请求某些特定功能所需的权限也会引发此类异常。务必仔细审查清单文件中的 `<uses-permission>` 标签部分,以保证所有必需项都已正确配置。 例如,在涉及多媒体内容管理的应用里,应当添加如下所示的相关权限条目到项目的 `AndroidManifest.xml` 文件内: ```xml <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp"> <!-- 请求相机、麦克风以及联系人信息等敏感权限 --> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.READ_CONTACTS"/> </manifest> ``` 此外,针对 API Level >= 23 的设备还需要动态地向用户索权[^1]。 #### 3. 构建脚本缺乏可执行位 如果是通过 Gradle Wrapper (`./gradlew`) 执行构建任务时报错,则很可能是该脚本本身不具备执行权限所致。此时只需赋予其相应的权利即可解决问题。 具体做法为切换至项目根目录并通过终端输入下列指令完成授权过程: ```bash chmod +x gradlew ``` 之后再重新启动构建流程试试看能否顺利推进下去[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaowang_lj

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值