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>
验证方法
- 重新构建并运行Android应用:
npx react-native run-android
- 测试动态链接唤起:
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
相关产品推荐
相关产品推荐

