如何移除AndroidManifest.xml构建合并后生成的不必要存储权限
解决方案
这些多余的权限是项目引入的第三方依赖库自带的,Android构建过程中执行Manifest合并操作时,会自动把所有依赖的声明合并到最终的Manifest文件中,要移除指定权限可以按以下操作处理:
- 首先在你项目的
android/app/src/main/AndroidManifest.xml的<manifest>根标签中添加tools命名空间声明:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="你的应用包名">
- 在Manifest的权限声明区域,添加以下两行配置,强制合并时移除这两个存储权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" tools:node="remove" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" tools:node="remove" />
注意事项
- 操作前请确认你的应用自身及所有依赖的功能都不需要读写外部存储权限,否则移除后相关功能会出现权限错误甚至崩溃
- 如果需要排查是哪个依赖引入了多余权限,可以在Android Studio中打开本项目的
AndroidManifest.xml,点击右上角的「Merged Manifest」标签,就能看到每个权限的具体来源
内容的提问来源于stack exchange,提问作者AlexUA
相关产品推荐
相关产品推荐

