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
相关产品推荐
相关产品推荐

