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

Android12(targetSdk31)下MyFirebaseMessagingService需指定android:exported

解决targetSdkVersion升级到31后Firebase Messaging Service的exported属性错误

Android 12(API 31)开始强制要求:所有带有<intent-filter>的组件(Service、Activity、BroadcastReceiver等)必须显式声明android:exported属性,用来明确控制组件是否允许被其他应用调用。

你只需要在AndroidManifest.xml中找到对应的Firebase消息服务标签,添加android:exported属性即可:

修改前的代码示例:

<service
    android:name="crc64572fdef0b95375c7.MyFirebaseMessagingService">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

修改后的代码:

<service
    android:name="crc64572fdef0b95375c7.MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

属性值选择说明:

  • 一般情况下,Firebase消息服务只需要接收Firebase官方的消息推送,不需要对外部应用开放,所以设置android:exported="false"是更安全的选择。
  • 只有当你的应用存在其他外部应用需要和该Service交互的场景时,才需要设置android:exported="true",这种情况极少出现。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 15:51:52