首页 文章

React-Native:应用程序尚未注册错误

提问于
浏览
107

我目前正在阅读React-Native教程 . 我从入门教程开始,在那里我做了一个新的反应原生项目并成功设法在我的设备上运行项目 .

然后我启动了Props tutorial,我复制了代码片段并尝试再次运行该项目并在我的屏幕上显示以下错误消息:

17 回答

  • 0

    我想这是由于不匹配项目名称和您注册的组件而导致的错误 .

    你有一个名字inited项目,即

    react-native init AwesomeApp

    但是在index.ios.js文件中,您注册了其他组件

    AppRegistry.registerComponent('Bananas', () => Bananas);

    必须的时候

    AppRegistry.registerComponent('AwesomeApp', () => Bananas);

    尝试解决它 .

  • 0

    大多数情况下,问题是您有另一个 react-native start (即React Native Packager)服务器在另一个终端或TMUX的另一个选项卡上运行(如果您使用的是TMUX) .

    您需要找到该进程并将其关闭,因此在运行 react-native run-ios 之后,它将 Build 一个为该特定应用程序注册的新打包服务器 .

    只需找到该过程使用:

    ps aux | grep react-native
    

    找到进程ID(PID)并使用 kill 命令(例如 kill -9 [PID] )终止打包程序进程 . 您应该在macOS中找到 launchPackager.command 应用程序,不确定其他操作系统 .

    然后尝试再次运行 run-ios (或android) . 您应该能够在运行新的打包程序服务器后看到新路径,例如:

    Looking for JS files in
       /Users/afshin/Desktop/awesome-app
    
  • 18

    像这样修改 MainActivity

    @Override
    protected String getMainComponentName() {
        return "Bananas"; // here
    }
    
  • 1

    首先,您必须开始申请:

    react-native start
    

    然后,您必须将应用程序名称设置为registerComponent的第一个参数 .

    它工作正常 .

    AppRegistry.registerComponent('YourProjectName', () => YourComponentName);
    
  • 1

    我的解决方案是“AppDelegate.m”中的更改模块名称

    来自 moduleName:@"AwesomeProject"

    moduleName:@"NewName"

  • 1

    在我的情况下,当我使用 react-native-rename cli(来自NPM)时,MainActivity.java中出现了这一行

    protected String getMainComponentName() {
        return "AwesomeApp";
    }
    

    显然你必须将它重命名为你的应用程序的名称 .

  • 10

    我有同样的问题,对我来说,根本原因是我从另一个react-native文件夹(AwesomeApp)运行(react-native start)打包器,而我在另一个文件夹中创建了另一个项目 .

    从新应用程序的目录运行打包程序解决了它 .

  • 34

    这也可能是由于根组件名称以小写字母开头 .

    更正它或者使用PascalCase名称再次创建项目 .

    例如点燃新的HelloWord

  • 0

    你需要 register 它在index.android.js / index.ios.js

    像这样:

    'use strict';
    
    import {
        AppRegistry
    } from 'react-native';
    
    import app from "./app";
    
    AppRegistry.registerComponent('test', () => app);
    
  • 3

    该问题也将出现 when, in index.js, you have named the app differently from the name you gave it for the android/ios package ;可能这发生在您弹出应用程序时 . 所以请确保在调用 AppRegistry.registerComponent('someappname', () => App) 时,someappname也用于本机包或反之亦然 .

  • 303

    我认为节点服务器正在从另一个文件夹运行 . 所以杀了它并在当前文件夹中运行 .

    Find running node server:-

    lsof -i :8081

    Kill running node server :-

    kill -9 <PID>

    例如:-

    kill -9 1653

    Start node server from current react native folder:-

    react-native run-android

  • 1

    请检查项目中的app.json文件 . 如果没有行appKey,那么你必须添加它

    {
      "expo": {
        "sdkVersion": "27.0.0",
        "appKey": "mydojo"
      },
      "name": "mydojo",
      "displayName": "mydojo"
    }
    
  • 0

    而不是更改 AppRegistry 中的名称,

    运行react-native init Bananas,这将为Bananas项目创建反应样板代码, AppRegistry.registerComponent 将自动指向香蕉

    AppRegistry.registerComponent('Bananas', () => Bananas);
    
  • 0

    所有给出的答案对我都不起作用 .

    我有另一个节点进程在另一个终端运行,我关闭了该命令终端,一切都按预期工作 .

  • 1

    没有解决方案适合我 . 我不得不杀死以下进程并重新运行react-native run-android并且它有效 .

    node ./local-cli/cli.js start

  • 6

    我有同样的问题 . 我正在使用Windows为Android创建一个react本机应用程序,并且遇到了同样的错误 . 这是有效的 .

    • 导航到根目录中的文件夹 ANDROID .

    • 创建一个名称为的文件: local.properties

    • 在编辑器中打开它并写:

    sdk.dir = C:\ Users \ USERNAME \ AppData \ Local \ Android \ sdk

    • 将USERNAME替换为您的计算机名称 .

    正常保存并运行应用程序 . 这对我有用 .

  • 5

    我想出了问题所在的位置(Windows 10操作系统),但它也可能对Linux有帮助(你可能会尝试) .

    windows power shell 中,当您想通过执行以下命令运行应用程序(首次启动电脑后),

    react-native run-android
    

    它在另一个 console panel 中启动 node process/JS server ,您不会遇到此错误 . 但是,当你想运行 another app 时,你 must 需要已经运行 JS server console panelclose . 然后从 power shell 为另一个应用执行相同的命令,该命令将自动为此应用启动另一个 new JS server ,您将不会遇到此错误 .

    您无需关闭并重新打开 power shell 以运行其他应用程序,您需要 close node console 来运行另一个应用程序 .

相关问题