APP因REQUEST_INSTALL_PACKAGES权限遭拒,移除权限方案无效求助
彻底移除REQUEST_INSTALL_PACKAGES权限的解决方案
确保
tools命名空间已添加到清单根标签
若未声明tools命名空间,tools:node="remove"会完全失效。在AndroidManifest.xml的<manifest>标签中补充:<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.your.app.package">排查权限来源
该权限大概率是第三方依赖库(如广告、统计SDK)自动引入的,可通过两种方式定位:- 执行Gradle命令生成合并报告:
./gradlew app:mergeDebugManifest,然后在build/outputs/logs/manifest-merger-debug-report.txt中搜索REQUEST_INSTALL_PACKAGES,查看From字段对应的依赖包名。 - 使用Android Studio内置工具:打开
AndroidManifest.xml,切换到底部的Merged Manifest标签,搜索目标权限,右侧From列会显示依赖来源。
- 执行Gradle命令生成合并报告:
针对性移除依赖中的权限
找到依赖包名后,在你的清单中精准移除该权限(全局移除可能被依赖的清单覆盖):<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" tools:selector="com.thirdparty.sdk.package" />将
com.thirdparty.sdk.package替换为实际的依赖包名。清理缓存并重新构建
缓存可能导致合并逻辑异常,执行以下操作:- 点击Android Studio菜单栏Build > Clean Project
- 接着点击Build > Rebuild Project
- 可选:执行Gradle命令清理缓存:
./gradlew cleanBuildCache
验证移除结果
构建完成后,打开app/build/intermediates/merged_manifests/[variant]/AndroidManifest.xml([variant]为debug或release),确认REQUEST_INSTALL_PACKAGES权限已完全消失。
内容的提问来源于stack exchange,提问作者Augustine Onu
相关产品推荐
相关产品推荐

