109

我正在使用原生基础在 react-native 中制作应用程序。我对这两件事都很陌生。当我运行应用程序时,它给了我这个错误:

在此处输入图像描述

这是我的代码:

export default class Point extends Component {

    render() {
        return (
            <Container>
                <Header>
                    <Left>
                        <Button transparent>
                            <Icon name='menu' />
                        </Button>
                    </Left>
                    <Body>
                        <Title>Header</Title>
                    </Body>
                    <Right />
                </Header>
            </Container>
        );
    }
}

这是我的版本的屏幕截图

在此处输入图像描述

和 nativebase 版本是"native-base": "^2.1.2"

4

28 回答 28

174

只需杀死所有节点进程并启动 npm 服务器并运行应用程序:

第一步:运行命令killall -9 node

对于 Windows 用户,运行:taskkill /im node.exe

taskkill /f /im node.exe如果该过程仍然存在,请运行。

第二步:运行命令npm start --reset-cache

Step3:运行命令react-native run-iosreact-native run-android

于 2018-07-12T11:10:21.417 回答
39

关闭当前的 Metro Bundler 并通过重置缓存重新启动对我有用

npm start -- --reset-cache
于 2019-01-10T06:16:27.460 回答
11
react-native start --reset-cacher
于 2020-07-25T15:39:01.337 回答
6

index.ios.js你应该在文件 的底部有这个,AppRegistry.registerComponent('Point', () => Point); 并且还AppRegistryreact-native

于 2017-04-25T09:42:18.117 回答
5

关闭当前的 Metro Bundler 并通过键入注释重新启动:

npm start -- --reset-cache
于 2019-10-28T18:31:51.963 回答
4

我遇到了这个问题——这很奇怪,因为我将我的 repo 重置为应用程序正在运行的时间。问题出在我的模拟器(iOS)上。

对我来说,解决方案是

  1. 杀死模拟器程序(退出)
  2. 然后 - 关闭运行模拟器时打开的终端窗口(Metro Bundler)我的终端窗口的图像
于 2018-09-15T17:05:52.093 回答
3

在我安装一个包含一些需要安装的本机代码的新包后,我往往会收到此错误。通常软件包会说安装 npm 模块,然后通过 pod install(特定于 ios)安装本机代码,之后我的应用程序通常会抛出此错误。

为了摆脱这个错误,我删除并重新安装了 node_modules 和 pod,因为我正在制作 iOS 应用程序,然后我还删除了 ios 下的 build 文件夹。之后,我使用 npm start -- --reset-cache 运行打包程序,并使用 react-native run-ios 命令再次构建我的应用程序。这为我解决了这个问题。

于 2021-06-28T13:27:01.327 回答
3

停止运行节点服务器并再次运行“react-native run-ios”。

于 2020-03-02T13:54:59.247 回答
2

在以下版本和 iOS 上为我工作:

"react": "16.9.0",
"react-native": "0.61.5",

解决步骤
关闭当前正在运行的 Metro Bundler
尝试重新运行 Metro Bundler 并检查此问题是否仍然存在

于 2020-01-15T16:58:31.643 回答
2

就我而言,尝试npm start -- --reset-cache并遇到更多错误,我从 iOS 和 Android 中删除(卸载)了该应用程序并yarn ios yarn android成功了。

于 2020-11-11T15:52:18.923 回答
1

只需关闭 Metro 捆绑器并重建应用程序即可完成我的工作。

于 2020-01-12T13:50:19.347 回答
1
  1. 关闭模拟器

  2. npm start -- --reset-cache

  3. XCode -> 产品 -> 清理构建文件夹

  4. npx react-native run-ios

于 2020-06-16T13:08:10.707 回答
1

killall -9 node我在终端尝试 了命令

然后我再次运行我的项目npm start,它工作正常

于 2020-11-26T15:38:48.687 回答
1

npm_modules在计算机重新启动和删除/重建文件夹、Pods文件夹和我的 ios 构建文件夹后,我最终创建了一个全新的 react-native 项目。(退出模拟器,退出终端应用程序,退出 XCode,清理 XCode 中的项目文件夹,运行killall -9 node, npm start -- reset-cahce&npm start -- --reset-cache也不起作用)。安装完所有软件包后,我将旧项目中的代码复制并粘贴到新项目中。同样的错误。因此,我开始逐步回溯我最近的代码更改。还原我最近的代码更改后,它起作用了。在一点一点地添加新代码时,我收到一个错误,告诉我我忘记了import {StyleSheet} from 'react-native';. 我导入了那个,然后继续添加我之前导致错误的代码(这只是一个react-native-elements Button和一个StyleSheet const styles)。一切顺利。

所以,最后,我唯一的理论是我一次添加了太多代码,而不是告诉我我忘了import {StyleSheet}喜欢它应该有的,而是给我一个模糊而令人愤怒的module AppRegistry错误。

于 2021-08-05T21:25:15.573 回答
1

我在我的应用程序中使用了本地基础,这里是链接本地基础

你可以看到没有像这样的应用注册表

 AppRegistry.registerComponent('Point', () => Point) 

但我必须这样做才能运行我的应用程序

于 2017-10-19T08:53:05.443 回答
0

其中一个库尚未链接。要检查,只需在 package.json 中将最新添加的库一一注释掉即可。

纱线删除库名称。

然后使用 xcode 和 puf 运行应用程序!

于 2020-12-10T09:05:36.317 回答
0

npm start -- --reset-cache

react-native run-ios

为我工作。

于 2021-12-22T05:11:43.250 回答
0

对于 Windows 操作系统,我也遇到了同样的错误。我通过清洁解决了这个问题gradlew

步骤是:

  1. cd android
  2. gradlew clean
  3. cd..
于 2021-02-26T07:03:18.463 回答
0

解决方案非常简单,只需杀死所有正在运行的节点并重新启动节点服务器并重建本机应用程序即可。

对于 Linix:

killall -9 node

对于 Windows:

taskkill /im node.exe

对于 Android 原生应用程序:

react-native run-android 

对于IOS原生App:

react-native run-ios

那么最后,

npm start
于 2021-01-07T10:49:16.047 回答
0

需要更换

.setJSMainModulePath("index") with .setJSMainModulePath("index.android")
于 2018-07-20T11:07:27.710 回答
0

如果您正在构建一个新的npm 模块并且这依赖于您项目中已经添加的一些其他依赖项,您需要将这些依赖项添加到 npm 包的 package.json 中作为对等依赖项。

包.json

"peerDependencies":{
 "@org/your-dependency":">= 1.2.0"
}
[Tue Aug 31 2021 17:57:45.731]  ERROR    Error: Type oid already present, js engine: hermes
[Tue Aug 31 2021 17:57:45.732]  ERROR    Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication), js engine: hermes
[Tue Aug 31 2021 17:57:45.732]  ERROR    Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication), js engine: hermes
于 2021-09-01T00:40:27.443 回答
0

就我而言,我没有在我使用它的组件中导入模块。

因此,只需检查您是否正在导入要使用的模块...

于 2020-11-13T11:09:52.473 回答
0

对我来说,问题是当我的一种风格出现错误时启动 Metro 捆绑器。从昨晚开始,我的代码出现错误,然后我的计算机在一夜之间重新启动。今天尝试启动所有内容都会导致此错误以及Invariant Violation: Invalid prop 'position' of value 'fixed' supplied to. 修复该position值解决了这两个错误。

于 2021-09-20T02:19:02.783 回答
0

如果您使用的是 windows 并在管理员模式下运行 yarn open cmd,则通过键入此命令终止并重新启动节点进程。

找到节点:killall -9 节点强制杀死:taskkill /f /im node.exe 重置缓存:yarn start --reset-cache

导航到您的项目目录: cd myapp 重新运行您的应用程序:yarn android

于 2020-06-23T03:21:51.777 回答
-1

发生这种情况的原因之一是:-

  • 您的应用程序的入口文件“index.js”由于语法错误或您的 React 应用程序无法加载而损坏。
  • Metro Bundler运行的实例已过时且已损坏。

解决方案

  • 终止已经运行的Metro Bundler实例

  • 重置缓存

    react-native start --reset-cache
    
  • 删除android/app/bulid文件夹

  • 再次启动服务器

于 2019-01-05T01:59:35.110 回答
-1

对我来说,重新启动计算机似乎足以解决此问题。

在我在分支之间切换或使用 git 合并分支后经常需要它。

于 2018-08-13T13:01:15.257 回答
-2
import { AppRegistry } from 'react-native';

AppRegistry.registerComponent('your app name',  () => point);
于 2019-06-25T07:14:07.047 回答
-2

您只需要通过control + c关闭 Metro 服务器,然后通过npm start --reset-cache重新启动

注意:如果这也不起作用,那么只需重新启动计算机,它肯定会起作用。

于 2020-10-16T09:55:55.387 回答