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

Google Play Console上传APK报错:未设置android:exported属性

解决Android 12及以上版本安装包上传失败的OneSignal组件问题

上传APK或Android App Bundle至Google Play Console时失败,报错提示:您上传的安装包存在带intent filter但未设置android:exported属性的activity、activity alias、service或broadcast receiver,无法在Android 12及以上版本安装。清单合并检测到以下三个OneSignal组件未显式指定android:exported属性:

  • com.onesignal.GcmBroadcastReceiver
  • com.onesignal.BootUpReceiver
  • com.onesignal.UpgradeReceiver

解决方案

方法1:升级OneSignal SDK到适配版本

OneSignal的新版本已针对Android 12要求做适配,会自动为相关组件添加android:exported属性。直接在项目Module级别的build.gradle中更新OneSignal依赖到最新稳定版即可,无需手动修改清单文件。

方法2:手动在AndroidManifest.xml中声明组件

若暂时无法升级SDK,可在自身AndroidManifest.xml的<application>标签内,显式声明这三个广播接收器并指定android:exported属性。由于这些接收器需要接收系统或OneSignal的外部广播,设置android:exported="true",同时添加tools:node="merge"确保清单合并时不冲突。

添加代码示例:

<!-- 手动声明OneSignal广播接收器,补充android:exported属性 -->
<receiver
    android:name="com.onesignal.GcmBroadcastReceiver"
    android:exported="true"
    tools:node="merge">
    <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
    </intent-filter>
</receiver>

<receiver
    android:name="com.onesignal.BootUpReceiver"
    android:exported="true"
    tools:node="merge">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED" />
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>

<receiver
    android:name="com.onesignal.UpgradeReceiver"
    android:exported="true"
    tools:node="merge">
    <intent-filter>
        <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
</receiver>

添加后重新构建安装包,即可满足Google Play Console的Android 12+适配要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:40:36