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

如何移除Flutter应用中的REQUEST_INSTALL_PACKAGES权限?

解决Flutter应用因REQUEST_INSTALL_PACKAGES权限被Play Console拒绝的问题

下面是几个可行的解决方法,按优先级尝试:

  • 强制在AndroidManifest中移除权限
    直接在你的android/app/src/main/AndroidManifest.xml里添加权限声明并标记为移除,Gradle合并Manifest时会忽略依赖引入的这个权限:

    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"
                     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.package.name">
    
  • 定位并针对性处理依赖
    先找出到底是哪些依赖引入了这个权限:

    • 在Android Studio中打开android模块,点击右侧Gradle面板,找到app > Tasks > android > androidDependencies运行,查看依赖树;
    • 或者在终端执行./gradlew app:dependencies(Windows用gradlew.bat app:dependencies)。
      找到对应的依赖后,检查该依赖的文档,看是否有配置项可以禁用需要这个权限的功能。比如某些应用更新SDK,你可以关闭其自动安装APK的功能,改用跳转应用商店更新,这样依赖就不会引入该权限。
  • 升级依赖版本
    部分依赖的新版本可能已经移除了这个权限,或者优化了权限的引入逻辑。尝试把相关依赖升级到最新稳定版,再重新打包检查权限是否还存在。

  • 排除依赖中的权限(进阶)
    如果某个依赖必须保留但确实不需要这个权限,可以在android/app/build.gradle的依赖声明中排除该权限的引入:

    implementation('com.example:some-dependency:1.0.0') {
        exclude group: 'com.android.support', module: 'support-v4' // 示例,实际要对应权限所属的模块
    }
    

    不过这种方式需要精准定位权限的来源模块,不如第一种方法直接。

验证权限是否移除:打包后,可以用aapt dump badging app-release.apk命令查看最终APK的权限列表,确认REQUEST_INSTALL_PACKAGES已经不存在。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:25:53