Android Studio下找不到MANAGE_EXTERNAL_STORAGE权限及相关ACTION问题
问题根因
你遇到的报错是因为使用的Android Gradle Plugin(AGP)版本4.1.3过旧,内置的SDK常量枚举没有同步Android 11(API 30)新增的权限和系统Action常量,哪怕配置了compileSdk为30也无法识别。
解决方法
- 第一步:确认模块级build.gradle配置的compileSdk版本正确
打开app/build.gradle,检查android节点下的compileSdk配置为30:android { compileSdk 30 defaultConfig { targetSdk 30 // 其余原有配置保留 } // 其余原有配置保留 } - 第二步:升级AGP和Gradle到适配API 30的版本
打开项目级build.gradle,修改AGP依赖版本为4.2.2:
打开dependencies { classpath "com.android.tools.build:gradle:4.2.2" // 其余原有插件配置保留 }gradle/wrapper/gradle-wrapper.properties,修改Gradle分发地址为对应版本:
修改完成后同步项目即可识别对应常量。distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-bin.zip - 第三步:临时兼容方案(无需升级版本)
如果不想升级Gradle版本,可直接使用硬编码字符串代替常量,效果完全一致:- AndroidManifest.xml中权限声明:
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />- 跳转全文件访问权限设置页的代码:
// Java 示例 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { Intent intent = new Intent("android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION"); startActivity(intent); }// Kotlin 示例 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { val intent = Intent("android.settings.MANAGE_ALL_FILES_ACCESS_PERMISSION") startActivity(intent) }
注意:MANAGE_EXTERNAL_STORAGE仅在Android 11及以上系统生效,低于该版本的设备不需要申请该权限。
内容的提问来源于stack exchange,提问作者امیر سالار ربانیها
相关产品推荐
相关产品推荐

