React-Native:模块AppRegistry不是注册的可调用模块

Dus*_*tin 101 android webpack react-native

我目前正在尝试在Android模拟器上运行ES6 react-native-webpack-server.不同之处在于我升级了我package.jsonbuild.grade使用react 0.18.0,并且在启动时遇到此错误.据我所知AppRegistry,正确导入.即使我要注释掉代码,这个错误仍然会出现.这在iOS上没有问题.

我究竟做错了什么?

编辑:尝试其他支持0.18.0的样板后,我仍然遇到同样的问题.

在此输入图像描述

小智 49

我刚刚升级到react-native 0.18.1今天很难在0.19.0-rc预发布版本中遇到一些对等依赖问题.

回到你的问题,我做的是

  1. cd android
  2. sudo ./gradlew clean

然后回到工作目录并运行 react-native run-android

升级后你也应该重启你的npm.

希望这对你有用.

  • 当提出做"sudo ./gradlew clean"之类的建议时,很高兴提到它是一个**巨大的**操作,显然重新下载并重新安装整个gradle发行版. (35认同)
  • 我正在尝试运行gradlew命令,但它一直告诉我它找不到Android SDK,即使我的路径中有'ANDROID_HOME`.我还使用`sdk.dir =`添加了`local.properties`文件.有任何想法吗? (3认同)

jol*_*ier 15

我在ios上遇到了同样的问题,并且我的原因是我的index.io.js是不正确的(因为我复制粘贴其中一个例子而不查看其内容),它以模块导出声明结束

exports.title = ...
exports.description = ...
module.exports = MyRootComponent;
Run Code Online (Sandbox Code Playgroud)

而不是预期的

AppRegistry.registerComponent('MyAppName', () => MyRootComponent);
Run Code Online (Sandbox Code Playgroud)

你可以在index.android.js的android上遇到同样的问题.


iDe*_*mit 11

出现此问题的一个主要原因可能是在哪里安装了插件而忘记了链接它

尝试这个:

react-native link
Run Code Online (Sandbox Code Playgroud)

重新运行您的应用。

希望这会有所帮助。请在评论中让我知道。谢谢。

  • 不推荐运行不带包名称的“react-native link”,并将在下一版本中删除。 (2认同)

usa*_*don 11

对我来说,只需重新启动计算机即可修复它。(我的错误是“模块appRegistry不是注册的可调用模块(调用runapplication)js引擎:hermes”)

这里缺少的另一个可能有效的最佳答案就是杀死节点进程:

killall -9 node

[ Module AppRegistry 未注册可调用模块(调用 runApplication) ]


Oma*_*man 8

我只是通过添加解决了这个问题

import { AppRegistry } from "react-native";
import App from "./App";
import { name as appName } from "./app.json";  
AppRegistry.registerComponent(appName, () => App);
Run Code Online (Sandbox Code Playgroud)

到我的index.js

确保它存在于index.js中


Dee*_*eBo 6

在我摆弄目录中的依赖项代码之后,我遇到了这个问题 - 跨 iOS 和 Android,在 Mac 上开发node_modules

我用以下方法解决了它:

rm -rf node_modules
npm i
npx pod-install ios
Run Code Online (Sandbox Code Playgroud)

这基本上只是重新安装您的依赖项。


小智 5

对我来说,我的问题是捆绑时放置了错误的条目文件

我使用 App.js 作为入口文件,因此应用程序找不到 AppRegistry

正确的:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
Run Code Online (Sandbox Code Playgroud)

错误:

react-native bundle --platform android --dev false --entry-file App.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
Run Code Online (Sandbox Code Playgroud)