模块 AppRegistry 不是注册的可调用模块

Posted

技术标签:

【中文标题】模块 AppRegistry 不是注册的可调用模块【英文标题】:Module AppRegistry is not a registered callable module 【发布时间】:2020-05-02 07:29:05 【问题描述】:

我从 React Native 开发开始,一开始就遇到了一个问题。尝试运行我的应用时出现错误:

不变违规:模块 AppRegistry 不是已注册的可调用模块(调用 runApplication) 未处理的 JS 异常:不变违规:本机模块不能为空。 未处理的 JS 异常:不变违规:(调用 runApplication)

我的 App.js:

import React,  Component  from 'react';
import  SafeAreaView  from 'react-native';
import DefaultRouter from './src/navigation/DefaultRouter'

export default class App extends Component 
  render() 
    return (
      <SafeAreaView>
        <DefaultRouter />
      </SafeAreaView>
      );
    
  ;

index.js:

import  AppRegistry  from 'react-native';
import App from './App';
import name as appName from './app.json';

AppRegistry.registerComponent(appName, () => App);

DefaultRouter.js:

import  createSwitchNavigator, createAppContainer  from 'react-navigation';
import LoginScreen from '../screen/LoginScreen';
import DefaultTabBar from '../navigation/TabBar';

const DefaultRouter = createSwitchNavigator(
    LOGIN_SCREEN: 
        screen: LoginScreen
    ,
    TAB_NAVIGATION: 
        screen: DefaultTabBar
    
, 
    initialRouteName: 'LOGIN_SCREEN',
    headerMode: 'none'
)

export default createAppContainer(DefaultRouter)

其他文件是简单的Component子类。

无论我是从 Visual Studio Code 还是使用 react-native run-ios 的终端运行应用程序,问题都会出现

我浏览了现有的答案,但没有找到任何可以为我指明正确方向的东西:React-Native: Module AppRegistry is not a registered callable moduleReact Native: Module AppRegistry is not a registered callable module (calling runApplication)module appregistry is not a registered callable module (calling runApplication) Module AppRegistry is not a registered callable module and Cant find variable: ConstantsReact Native Module AppRegistry is not a registered callable moduleModule AppRegistry is not a registered callable module only in Release configuration

我被卡住了,我不知道从这里去哪里

【问题讨论】:

【参考方案1】:

运行npm cache verifycd ios &amp;&amp; pod install,然后运行npm run ios

【讨论】:

为什么?此处添加推理,请解释。 有时有些库没有清理好,要修复,开发者可以重新安装或手动清理【参考方案2】:

在我的情况下,在 git commit 导致错误之后,我发现提交中的错误代码是:

static emitter = Platform.OS === 'ios' ? new NativeEventEmitter(NativeModule) : DeviceEventEmitter;

其中 NativeModule 为空,因为我没有在 iOS 上实现它!

当我编辑它时

static emitter = Platform.OS === 'ios' ?  : DeviceEventEmitter;

那么错误Invariant Violation: Module AppRegistry is not a registered callable module (calling runApplication)就消失了!

【讨论】:

【参考方案3】:

不用担心...只需关闭所有服务器进程和节点,然后使用

再次运行您的应用程序
react-native run-ios/android

【讨论】:

以上是关于模块 AppRegistry 不是注册的可调用模块的主要内容,如果未能解决你的问题,请参考以下文章

Redux connect - 模块AppRegistry不是注册的可调用模块

React Native - Xcode 12.1 & iOS 14.0.1 Invariant Violation:Module AppRegistry 不是注册的可调用模块(调用 runA

React Native:模块RCTLog不是注册的可调用模块(调用logIfNoNativeHook)

错误:[mobx-state-tree] 期望 mobx-state-tree 类型作为参数 1,改为未定义

verilog怎么编写可调PWM波形?

为什么需要使用可调DWDM SFP+光模块?