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

React-Native-Navigation 1.1.45与RN 0.43安卓配置求助

搞定React Native Navigation 1.1.45 + RN 0.43 安卓配置问题

嘿,看你的MainActivity.java代码,核心问题很明显——你还在继承原生的ReactActivity,但RNN 1.x版本的安卓端要求主Activity必须继承NavigationActivity才行。下面是一步步帮你搞定的完整配置流程:

1. 完全修改MainActivity.java

把你现有的代码替换成下面的完整版本(记得把com.MY_APP_NAME替换成你实际的包名):

package com.MY_APP_NAME;

import com.reactnativenavigation.controllers.NavigationActivity;
import com.oblador.vectoricons.VectorIconsPackage;
import com.reactnativenavigation.bridge.NavigationReactPackage;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import java.util.Arrays;
import java.util.List;

public class MainActivity extends NavigationActivity {

  @Override
  protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList(
      new MainReactPackage(),
      new NavigationReactPackage(),
      new VectorIconsPackage()
    );
  }

  @Override
  protected String getMainComponentName() {
    return "MY_APP_NAME"; // 这里必须和你index.android.js里注册的组件名完全一致
  }
}

注意:如果你的项目里还有其他第三方ReactPackage,也要一起加到getPackages()的列表里。

2. 检查AndroidManifest.xml配置

确保你的android/app/src/main/AndroidManifest.xml里的MainActivity配置正确,必须设置launchMode为singleTask:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:launchMode="singleTask"
    android:configChanges="keyboard|keyboardHidden|orientation|screenSize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

3. 验证依赖配置

检查android/app/build.gradle

确保已经添加了RNN的依赖:

dependencies {
    // 其他已有的依赖...
    compile project(':react-native-navigation')
}

检查settings.gradle

确保已经包含了RNN的项目引用:

include ':react-native-navigation'
project(':react-native-navigation').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-navigation/android/app/')

4. 清理缓存并重新构建

执行以下命令彻底清理缓存,然后重新打包安卓项目:

cd android && ./gradlew clean
cd .. && react-native run-android

常见坑点排查

  • 确认getMainComponentName()返回的名称和你index.android.js里AppRegistry.registerComponent的名称完全匹配(大小写都不能错)
  • 如果遇到VectorIcons相关错误,执行react-native link react-native-vector-icons手动链接(RN0.43不支持自动链接)
  • 这个RN0.43 + RNN1.1.45的版本组合是官方兼容的,版本匹配没问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:39:20