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

React Native安卓应用目标API升至31后构建安装失败求助

解决React Native安卓API31+构建失败:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED

问题原因

Android API 31及以上要求所有带有intent filters的组件必须显式声明android:exported属性,而旧版OneSignal SDK的com.onesignal.GcmBroadcastReceiver组件未满足此要求,导致安装包解析失败。

解决方案

方案1:手动修改AndroidManifest.xml

在项目的android/app/src/main/AndroidManifest.xml中添加或修改该接收器的配置,显式设置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>
  • android:exported="true":该接收器需要接收Google推送的外部Intent,必须设为true;
  • tools:node="merge":确保与OneSignal SDK自带的Manifest配置合并,避免冲突。

方案2:升级OneSignal SDK到适配API31的版本

旧版OneSignal SDK未适配API31的exported要求,升级到最新稳定版即可自动修复此问题:

  1. 在项目根目录的package.json中更新react-native-onesignal版本(建议>=4.5.0及以上);
  2. 执行npm install或yarn install重新安装依赖;
  3. 同步Android Gradle配置,重新构建项目。

方案3:通过Gradle配置自动注入属性

如果不想手动修改Manifest,可在android/app/build.gradle的defaultConfig中添加占位符,让Gradle自动处理:

android {
    defaultConfig {
        ...
        manifestPlaceholders = [
            onesignal_exported: "true"
        ]
    }
}

注:此方案需确保使用的OneSignal SDK版本支持该占位符配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:45:43