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

Flutter应用上传Google Play Console时提示需移除未在Manifest中声明的REQUEST_INSTALL_PACKAGES权限求助

解决Flutter应用中未声明但存在REQUEST_INSTALL_PACKAGES权限的问题

别担心,这个权限大概率是你项目里依赖的第三方插件自动添加的——Flutter会合并所有依赖库的AndroidManifest.xml到最终打包清单中,所以你自己的清单里看不到,但最终安装包是包含这个权限的。下面是具体的排查和移除方法:

一、先确认权限的来源

  • 通过Android Studio查看合并后的清单
    打开项目的android模块,找到app/src/main/AndroidManifest.xml,打开后底部有个「Merged Manifest」标签页,点击进去就能看到最终合并后的所有权限,同时会标注每个权限来自哪个依赖库(显示对应的gradle路径)。
  • 用命令行生成合并后的清单
    在项目根目录执行如下命令:
    ./gradlew :app:processDebugManifest
    
    执行完成后,合并后的清单文件会在app/build/intermediates/merged_manifests/debug/AndroidManifest.xml路径下,打开就能定位到这个权限的来源。

二、移除多余的权限

找到来源后,有两种解决方式:

  1. 直接在自身Manifest中强制移除
    在你的AndroidManifest.xml里添加带有tools:node="remove"属性的权限声明,以此删除这个自动添加的权限,代码示例:
    <!-- 先在manifest根标签添加tools命名空间 -->
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.your.app.package">
    
        <!-- 移除不需要的权限 -->
        <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove" />
    
        <!-- 其他原有代码 -->
    </manifest>
    
  2. 排查依赖库的必要性
    如果找到是某个插件添加的权限,你可以查看该插件的官方文档,确认它是否真的需要这个权限。如果插件有更新版本移除了不必要的权限,直接升级插件即可;如果插件确实不需要这个权限,也可以联系开发者反馈问题。

三、验证移除结果

修改完成后,重新打包项目,再用前面的方法查看合并后的清单,确认REQUEST_INSTALL_PACKAGES权限已经消失,之后再上传到Google Play Console就不会收到这个通知了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 20:32:29