开发者问题收集

React Native Navigation React Native CLI 自动链接错误

2020-02-29
660

问题描述

我通过 npx react-native link react-native-navigation 安装了库(并修改了 andoid/build.gradle 中的 minSdkVersion )。

当我运行 npx react-native run-android 时,应用程序已构建并正常运行,但我在终端中收到以下错误:

error React Native CLI uses autolinking for native dependencies, but the following modules are linked manually: 
  - react-native-navigation (to unlink run: "react-native unlink react-native-navigation")

由于该库已手动链接,因此我在 react-native.config.js 文件中添加了一个条目,以防止 react native 尝试自动链接该库,如下所示:

module.exports = {
    dependencies: {
        'react-native-navigation': {
            platforms: {
                android: null, // disable Android platform, other platforms will still autolink if provided
            },
        }
    }
  };

现在,CLI 错误不再显示,应用程序已成功构建,但我在模拟器中收到错误:

TypeError: null is not an object (evaluating "this.nativeCommandsModule.setRoot()").

发生在我的第一个 Navigation.setRoot(...); 调用:

[index.js]

const start = () => {
    Navigation.events().registerAppLaunchedListener(() => {
        registerScreens();
        gotoInitialising();
        // gotoLogin();
    });
};

start();

我的问题是,我应该采取什么额外步骤才能使库正常工作,同时又不会出现 React Native CLI 错误。

环境

React Native Navigation 版本: 6.0.1 React Native 版本: 0.61.5 平台(iOS、Android 还是两者兼有?): Android 设备信息(模拟器/设备?操作系统版本?调试/发布?): Android 模拟器 API 28 -(模拟器版本 29.2.1-5889189)- 调试版本

2个回答

仅供参考,自 [email protected] 以来,链接脚本已修复,以更新适用于 Android 的 minSDK

此外,您不应在 react-native.config.js 中添加 react-native-navigation,因为您的本机代码需要使用 RNN 库。团队已更新文档,使安装指南更加清晰: https://wix.github.io/react-native-navigation/docs/installing 。如果您按照指南操作,应该会非常简单。

Jin Shin
2020-05-27

运行以下命令: react-native unlink react-native-navigation

2021-05-18