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

Google上传失败:AndroidManifest中OneSignal的android:exported属性问题

解决Android 12+上传Google Play报错:OneSignal插件引发的android:exported缺失问题

上传APK或Android App Bundle到Google Play时遇到以下报错:

您上传的APK或Android App Bundle中存在带有intent filter但未设置'android: exported'属性的activity、activity alias、service或broadcast receiver,该文件无法在Android 12或更高版本安装。

排查后确认问题出在OneSignal插件注入的ADM广播接收器——该组件带有intent-filter但未声明android:exported属性,不符合Android 12及以上版本的强制要求。

解决方案

方案1:手动修改AndroidManifest.xml(临时修复)

找到Manifest中的OneSignal ADM接收器,添加android:exported="true"属性:

<receiver android:name="com.onesignal.ADMMessageHandler$Receiver" 
          android:permission="com.amazon.device.messaging.permission.SEND"
          android:exported="true"> <!-- 新增这一行 -->
    <intent-filter>
        <action android:name="com.amazon.device.messaging.intent.REGISTRATION" />
        <action android:name="com.amazon.device.messaging.intent.RECEIVE" />
        <category android:name="com.va.barce" />
    </intent-filter>
</receiver>

注:设置为true是安全的,因为该接收器已通过android:permission限制仅允许持有亚马逊消息权限的应用发送广播。

方案2:升级OneSignal插件到最新版本

新版本的OneSignal插件已适配Android 12+的android:exported要求,升级后插件会自动处理Manifest配置。以Cordova为例:

# 先移除旧插件
cordova plugin rm onesignal-cordova-plugin
# 安装最新版
cordova plugin add onesignal-cordova-plugin@latest

方案3:禁用ADM支持(如果不需要亚马逊消息服务)

如果你的应用不需要适配亚马逊设备,可以关闭OneSignal的ADM功能,插件将不再注入该广播接收器。具体操作可在OneSignal初始化代码中跳过ADM相关设置,或参考插件配置文档关闭ADM选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:10:56