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

因android:exported属性问题,Google Play拒绝Flutter应用发布包

问题分析与解决方案

核心拒绝原因排查

你手动声明的MainActivity、AndroidNotificationService、NotificationServiceAutoStart都已设置android:exported属性,但Google Play仍拒绝,问题根源在于Flutter 2.2.3版本的兼容性缺陷:

  • Flutter 2.2.3发布于Android 12正式版之前,其内置的引擎相关组件(如隐藏服务、广播接收器)未适配Android 12的android:exported强制要求,这些组件会被合并到最终的Manifest中,触发审核拒绝。
  • 你依赖的第三方插件如果未适配Android 12,其Manifest中的组件也可能存在同样的问题。

额外配置错误

你的build.gradle存在两处明显问题,虽非本次拒绝直接原因,但会影响后续发布:

  • versionCode必须为整数,不能写1.0,应改为1;
  • versionName是字符串类型,需添加双引号,改为versionName "1.0"。

具体解决步骤

  1. 升级Flutter版本
    直接升级到Flutter 2.10.x及以上稳定版(推荐最新稳定版),新版本已适配Android 12的android:exported要求,会自动处理内置组件的属性配置。

  2. 检查并更新第三方插件
    打开pubspec.yaml,逐个核对依赖插件:

    • 确认插件是否有适配Android 12的版本,优先升级到最新兼容版;
    • 移除不再维护、无法适配的插件,寻找替代方案。
  3. 排查合并后的Manifest
    用Android Studio打开项目,切换到AndroidManifest.xml的Merged Manifest标签,查看最终生成的Manifest文件:

    • 定位所有带<intent-filter>但未设置android:exported的组件;
    • 在自己的AndroidManifest.xml中手动为这些组件添加android:exported属性(内部使用的组件设为false,需外部调用的设为true),可通过tools:node="merge"确保属性生效。
  4. 修复build.gradle版本配置
    修改后的defaultConfig如下:

    defaultConfig {
        applicationId "com.testApp"
        minSdkVersion 21
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 21:10:35