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

React Native升级后动态链接失效,添加意图过滤器报Activity不存在

React Native 0.71.4 动态链接配置引发Activity不存在的解决办法

问题梳理

升级到React Native 0.71.4后,为MainActivity添加包含android.intent.action.VIEW的intent-filter以支持动态链接时,启动应用报错:

Error: Activity class {com.testApp/com.testApp.MainActivity} does not exist.

移除该过滤器后应用可正常启动,但Firebase动态链接无法唤起应用;iOS端功能正常,仅Android端异常,使用@react-native-firebase/dynamic-links库。

当前AndroidManifest配置中,application标签重复声明了package属性,且MainActivity缺少默认启动的intent-filter,这大概率是问题根源。

修复步骤

1. 移除重复的package属性

RN 0.71.x对AndroidManifest的结构校验更严格,根manifest标签已声明package="com.testApp",application标签无需重复定义,直接删除该属性即可避免Activity路径解析冲突。

2. 拆分intent-filter

将应用默认启动入口和动态链接唤起的intent-filter分开配置,确保系统能正确识别启动入口和链接唤起规则:

  • 默认启动入口的intent-filter必须保留,否则应用无法正常启动
  • 动态链接的intent-filter单独配置,包含所需的action、category和data规则

3. 清理构建缓存

缓存残留可能导致配置变更不生效,执行以下命令清理:

cd android && ./gradlew clean

修改后的完整AndroidManifest示例

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.testApp">
  <uses-permission android:name="android.permission.INTERNET"/>
  <application
    android:networkSecurityConfig="@xml/network_security_config"
    android:name=".MainApplication"
    android:label="@string/app_name"
    android:icon="@mipmap/ic_launcher"
    android:allowBackup="false"
    android:theme="@style/AppTheme"
    >
    <activity
      android:usesCleartextTraffic="true"
      android:name=".MainActivity"
      android:label="@string/app_name"
      android:launchMode="singleTask"
      >
      <!-- 应用默认启动入口 -->
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      <!-- Firebase动态链接唤起规则 -->
      <intent-filter>
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>
        <!-- 自定义Scheme -->
        <data android:scheme="com.testApp"/>
        <data android:scheme="testApp"/>
        <!-- 动态链接的HTTPS Scheme和Host -->
        <data android:scheme="https" android:host="my-firebase-test-link.com"/>
      </intent-filter>
    </activity>
  </application>
</manifest>

验证方法

  1. 重新构建并运行Android应用:
npx react-native run-android
  1. 测试动态链接唤起:
npx uri-scheme open https://my-firebase-test-link.com/profile --android

额外排查点

  • 确认MainActivity.java文件确实位于android/app/src/main/java/com/testApp/目录下,类名与配置完全一致
  • 检查@react-native-firebase/dynamic-links版本是否适配RN 0.71.4,建议升级到最新兼容版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 09:57:45