不变违规:requireNativeComponent:在 UIManager 中找不到 "RNSScreen"

Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager

我收到 RNSScreen 错误,尽管我已经安装了所有相关的软件包并遵循了 react-navigation 指南 (https://reactnavigation.org/docs/getting-started#installation),但对我来说没有任何效果。

这对我有帮助。安装这个包

npm i react-native-screens

并添加

import { enableScreens } from 'react-native-screens';

enableScreens();

我认为您缺少安装 react-native-screens 组件。这是安装反应导航指南中的必需部分。

从 npm 安装包后,不要忘记 运行 pod install 到 ios 文件夹中。

我遇到过同样的问题,并且解决了。

您可以关闭 Android 模拟器(或设备)上的终端和应用程序,然后再次 运行 npm run androidreact-native run-android

我认为他们可能有一些缓存并发生错误。

希望你能解决问题。

您进入项目文件夹的 ios 文件夹并运行执行以下命令。

pod install

然后运行模拟器。

  1. 关闭 Metro 和 IOS 模拟器。
  2. 确保您转到 ios 文件夹 运行 pod install
  3. 重新打开模拟器

这应该可以解决问题。我也用了好久才弄明白

关闭 Metro 并 运行 npx run android 重建您的代码

嘿,我也遇到了同样的问题。只需使用

npm install react-native-screens

.

您必须安装了 react-native-screens,我猜您已经安装了。所以,我只给你一个文档中可能不太清楚的问题。

所以你可能只是在你的应用程序上安装 React Navigation。

安装完成后,需要重启应用。

所以请关闭您的应用程序,运行 react-native run-iosreact-native run-android 再次。

React navigation 安装一些原生模块。因此,您需要像我提到的那样重新启动该应用程序。

这在他们的文档中非常清楚。

我也遇到了同样的问题。对于 Android,我从模拟器中卸载应用程序然后构建应用程序 again.Problem 已解决。假设您已经安装了所需的软件包。

Finally found the solutions, first by creating new project and secondly re-setup of the react-google-maps library.

解决方案:创建新项目,从头开始安装所有依赖项,按照react-native screens的逐步安装指南,最后将我的所有代码文件移动到一个新创建的项目。这对我有用 :D

深入研究项目代码并将项目代码与新生成的代码进行比较后,以下是我的发现:

实际问题:我们前段时间集成了react-native-google-maps库,我和其他开发人员遵循了一步一步的指导方针并在 android 文件夹中的 MainActivity.java 文件中进行了更改。由于一些配置错误,引发了 RNSScreen 问题。

实际解决方案 完全删除了 react-native-google-maps(卸载了 npm 包)并删除了 Google Maps 配置并设置了 react -google-再次映射库

总之,如果有开发者尝试在react native中设置google地图,请检查react native和react-native-google-maps库的版本,然后仔细按照步骤操作。

希望这能回答您的问题。

只需停止 运行 您的节点服务器并从 Xcode/Android Studio 或使用命令 react-native run-iosreact-native run-android

重新构建应用程序

如果您使用的是 android,您需要使用 npx 运行 android 或 react-native 运行-android 进行重建 新安装的 apk 可以正常工作

在实施导航时遇到了同样的问题。 运行 遵循命令

npm install @react-navigation/native

React Navigation 由一些核心实用程序组成,然后导航器使用这些实用程序在您的应用程序中创建导航结构。

在你的项目目录中,运行:

npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

这将安装这些库的兼容版本。

如果您在 Mac 上并且正在为 iOS 开发,您需要安装 pods 以完成链接。

npx pod-install ios

现在运行

react-native run-ios

停止所有终端服务器然后运行

npx react-native run-android

如果还是不行,

npm i react-native-screens

然后

npx react-native run-android

就我而言,以下代码块有所帮助!

npm install react-native-screens
npm run android/ ios

(对我有用..!)

对于 React-native 开发者.. 有时包的更改未反映在 xcode 中,因此请按照此步骤解决方案..

在 xcode 中打开项目 -> 清理 Buid 文件夹 -> (重新构建您的项目)运行 在任何模拟器上等待构建.. -> 一旦构建,您可以通过终端再次 运行 或通过 xcode..

继续工作

这个解决方案 (source) 对我总是有效,这里是确切的解决方案:

如果您遇到此错误

Invariant Violation: requireNativeComponent: "RNSScreen" was not found in the UIManager.

按照以下步骤操作:

1。如果您有以下软件包,请确保在您的 `package.json` 文件中:

  • @react-native-community/masked-view
  • @react-navigation/native
  • @react-navigation/stack
  • react-native-gesture-handler
  • react-native-reanimated
  • react-native-safe-area-context
  • react-native-screens

2。接下来通过确保 cd ios --> pod install --> cd ..[= 确保 pods 是最新的(仅对于 iOS) 16=]

3。最后按 Ctrl+C (twice/thrice) 取消当前构建,然后执行 npx react-native run-ios

当您安装所有软件包以添加导航而不终止 运行ning build 时,通常会发生这种情况。确保为(android 或 IOS )停止 运行ning 进程,然后在安装它们并添加路由组件后再次 运行 它

none 的推荐答案一直有效,直到我尝试了我在此 中找到的内容并重新开始我的步骤:

  • 正在删除 node_modules 目录
  • 转Metro居然完全退出模拟器
  • yarn重新安装
  • 通过npx react-native start
  • 开始地铁
  • 通过 npx pod-install ios
  • 安装 pods
  • 运行 模拟器再次通过 npx react-native run-ios

确保安装了以下插件并链接到 android & ios?

npm install react-native-screens

如果没有链接则执行下面的命令

react-native link react-native-screens

在 android 和 ios 成功链接后,android studio 的“Sync Gradle”和 ios[=12 的“pod install” =]

现在关闭终端并再次构建 运行 app

RNSSCreens 错误,因为您的项目中没有安装 react-native-screens

只是 运行 npm install react-native-screens react-native-safe-area-context 或者如果你使用纱线 运行 'yarn add install react-native-screens react-native-safe-area-context'

我在这个问题上工作了好几天,这对我来说很有效:

在android\app\src\main\java(你的项目名称)\MainApplication.java

添加到进口:

import com.swmansion.rnscreens.RNScreensPackage;

然后将新的 RNScreensPackage() 添加到 ReactPackage 列表中:

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

编辑:这是我在这里尝试了所有其他方法之后的结果。

我也遇到了这个错误,在执行这些步骤后我的应用启动了 运行

  1. cd android
  2. ./gradlew clean(对于 windows 或 linux)
  3. npm 安装react-native-screen
  4. react-native开始&react-nativerun-android

我将 Expo 更新到 45.0.0。这修复了错误并解决了应用程序在生产模式下启动后崩溃但在带有二维码或模拟器的设备上运行良好的问题。

由于我没有足够的声誉来为答案投票,我在这里提到对我有用的答案 @Gurjinder Singh 提到的解决方案,运行顺利..

夺回:

问题:在 Expo 中,Sanity.io 应用程序在开发设备上运行,但是一旦使用“eas build -p android - -profile preview”,构建成功,但是当我尝试在我的手机中打开应用程序时,闪屏应用程序崩溃了。

Adblogcat 显示:com.facebook.react.common.JavascriptException:不变违规:requireNativeComponent:在 UIManager 中找不到“RNSScreen”。

解决方案有效:

npm install @react-navigation/native

npm install react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view

感谢社区和@Gurjinder Singh(投票最高)