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

React Native Android集成OneSignal后名称错误 启动跳转非MainActivity如何解决

应用名称错误截图

你提供的MainActivity.java和MainApplication.java配置没有问题,不需要修改。两个异常的根源是OneSignal SDK的AndroidManifest配置在构建合并时优先级更高,覆盖了你项目的自定义配置,按以下步骤修复即可:

修复步骤

1. 修复默认启动Activity跳转错误

打开项目下的android/app/src/main/AndroidManifest.xml文件:

  • 首先在根<manifest>节点添加tools命名空间,用于覆盖第三方SDK的冲突配置:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.social.firebase.example.socializus">
  • 找到MainActivity的声明节点,修改为如下配置,明确指定它为桌面启动入口:
<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
    android:launchMode="singleTask"
    android:windowSoftInputMode="adjustResize"
    android:exported="true"
    tools:replace="android:exported">
    <intent-filter tools:replace="android:action, android:category">
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

该配置会强制覆盖OneSignal SDK自带的Activity的启动器优先级,让你的MainActivity成为默认启动页。

2. 修复应用名称显示错误

同样在AndroidManifest.xml中找到<application>节点,新增tools替换规则覆盖SDK的应用名配置:

<application
  android:name=".MainApplication"
  android:label="@string/app_name"
  android:icon="@mipmap/ic_launcher"
  android:roundIcon="@mipmap/ic_launcher_round"
  android:allowBackup="false"
  android:theme="@style/AppTheme"
  tools:replace="android:label">

tools:replace="android:label"会强制使用你项目定义的应用名,覆盖OneSignal SDK自带的RNOneSignalAndroid名称。

如果修改后应用名仍未生效,检查android/app/src/main/res/values/strings.xml中的app_name字段是否为你要设置的自有应用名。

3. 清理缓存重新构建

配置修改完成后,进入项目的android目录执行清理命令清除旧构建缓存:
./gradlew clean
之后再重新运行React Native项目即可生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:06:04