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

升级RN 0.72.5后react-native-push-notification构建权限缺失错误

React Native 0.72.5构建报错:缺少BROADCAST_CLOSE_SYSTEM_DIALOGS权限的解决方向

问题本质

报错指向代码调用context.sendBroadcast(new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS))时缺少对应权限,这个权限在Android 12(API 31)及以上属于签名级权限,普通应用无法正常申请使用。

可行解决路径

1. 清理不必要的系统广播调用

  • 排查自研代码,若存在该广播调用逻辑,替换为应用内弹窗关闭的实现,避免调用系统级广播。
  • 检查第三方依赖,确认是否由某个库触发该调用。尝试将依赖升级至适配RN 0.72.5的最新版本,无法升级则考虑替换为功能类似的兼容库。

2. 低版本兼容的权限声明(仅API 30及以下有效)

若必须保留该调用,可在AndroidManifest.xml中添加权限声明:

<uses-permission android:name="android.permission.BROADCAST_CLOSE_SYSTEM_DIALOGS" />

注意:Android 12+系统中该声明无效,此权限仅对系统应用或签名匹配的开放应用开放。

3. 核对RN升级后的构建配置

RN 0.72.x升级可能伴随Android SDK版本提升:

  • 检查应用级build.gradle中的compileSdkVersion、targetSdkVersion是否升至33或更高,若为是,需调整代码逻辑适配更严格的权限规则。
  • 确认根级build.gradle中RN相关插件、依赖版本与0.72.5完全匹配,避免版本冲突。

4. 临时忽略lint错误(不推荐长期使用)

若暂时无法修改代码,可在应用级build.gradle中添加lint规则跳过该错误:

android {
    lintOptions {
        disable 'MissingPermission'
    }
}

此为临时救急方案,长期使用会掩盖其他潜在权限问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 20:40:00