You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

移除AndroidManifest.xml中的权限为何不生效?

可能导致INTERNET权限被自动添加的原因及解决办法

我来帮你拆解这个常见的编译权限问题——自己构建的APK出现了商店版没有的权限,大概率是清单合并机制或者第三方依赖在幕后起作用,下面是几个具体的排查和解决方向:

  • 第三方依赖悄悄引入权限
    很多看似和网络无关的Android库,会在自身的AndroidManifest.xml里声明INTERNET权限。当你构建项目时,Android的清单合并工具会自动把所有依赖的权限整合到最终的APK清单中。比如Crash上报库、分析统计库,甚至一些UI组件库都可能附带这个权限。
    你可以在Android Studio里直接查看合并后的最终清单:打开app/build/intermediates/merged_manifests/[你的构建变体]/AndroidManifest.xml,搜索INTERNET就能定位到是哪个依赖库添加的权限。

  • 缺少强制移除权限的声明
    如果你只是删掉了自己Manifest里的权限声明,但依赖库的权限还在,合并后的清单依然会保留它。这时候需要用tools:node="remove"来强制移除:

    <uses-permission android:name="android.permission.INTERNET" tools:node="remove" />
    

    注意要在Manifest的根标签里添加xmlns:tools="http://schemas.android.com/tools"命名空间,否则tools标签会报错。

  • 构建变体/产品风味的配置差异
    商店版可能用了特定的构建配置(比如release风味),其中包含了移除权限的逻辑,而你编译的是默认的debug变体,没有应用这个配置。可以检查Module级别的build.gradle文件里的productFlavors或buildTypes区块,看看有没有针对不同变体的权限处理规则。

  • Gradle/AGP版本差异
    如果你使用的Gradle或Android Gradle Plugin(AGP)版本和开发者上传商店时的版本不一致,某些新版本可能会默认添加权限或者修改清单合并规则。可以尝试把AGP版本降到项目README中提到的版本,再重新编译测试。

建议你先从查看合并后的清单入手,定位到权限的来源,再针对性解决问题。

内容的提问来源于stack exchange,提问作者Welcor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:03:35