Javascript 在react native中调用Appregistry.runApplication时出错
我正在尝试在android emulator上运行react本机应用程序,但遇到如下错误 调用Appregistry.runApplication时出错 AVD:'Nexus_5X_API_23(AVD)-6.0 操作系统:Windows 10Javascript 在react native中调用Appregistry.runApplication时出错,javascript,android,reactjs,react-native,Javascript,Android,Reactjs,React Native,我正在尝试在android emulator上运行react本机应用程序,但遇到如下错误 调用Appregistry.runApplication时出错 AVD:'Nexus_5X_API_23(AVD)-6.0 操作系统:Windows 10 请对此提供帮助?据我所知,此错误出现在以下情况: 1) 您没有在正确的位置运行打包程序,即,您点击了错误的文件夹来运行react-native packager,因此只需导航到项目目录并运行react-native start 2) 当您对Appreg
请对此提供帮助?据我所知,此错误出现在以下情况:
1) 您没有在正确的位置运行打包程序,即,您点击了错误的文件夹来运行react-native packager,因此只需导航到项目目录并运行
react-native start
2) 当您对Appregistry模块编写错误代码时
3) 关闭所有Xcode、打包机、模拟器等,然后重新启动
4) 从这个错误中,我想到的一件事是模块的名称
AppRegistry.registerComponent('AppName', () => componentName)
matches with the @"AppName" on your AppDelegate.m on the call for
[[RCTRootView alloc] initWithBundleUrl:...
moduleName:@"AppName"
launchOptions:...
5) 因为我们使用的是react的组件,所以我们需要给类名的第一个字符加上大写
6) 让我们看看index.android.js
和index.ios.js
干杯:)我也遇到了同样的问题,通过将本地计算机设置为android emulator中的调试服务器,我可以解决这个问题。打开android emulator,
Command+M
打开菜单,然后单击“开发设置”,然后单击“调试服务器主机和端口”,并将其设置为127.0.0.1:8081。然后从项目目录中运行react native run android
。我希望这能有所帮助。几天前,我遇到的问题与您目前遇到的问题几乎相同。对我来说,这是一个真正的设备
根据我所有的研究,对我有效的解决方案如下:
当您通过键入react native run android
启动应用程序时,会出现错误
因此,请访问包含“adb.exe”的目录(对我来说是C:\Users\username\AppData\Local\Android\Sdk\platform tools\)
从这里打开一个终端。和类型adb反向tcp:8081 tcp:8081
然后,通过在手机上重新加载应用程序,它应该可以工作
我希望这对你有帮助!!(如果不是的话,我感到羞耻)
干杯;)
编辑:
我找到了一个更方便的办法来解决这个问题
当您启动“react native run android”时,您可能会看到一条评论:“adb不被识别为内部或外部命令…”
好的,您可以添加一个环境变量,指向adb.exe,而不是手动使用adb命令
只需进入“控制面板”>“系统和安全”>“系统”>“高级系统设置”
从这里,点击“环境变量”。在“系统变量”部分中搜索“路径”变量。点击它并按下“编辑”按钮
在这里,您可以向该变量添加新路径。只需单击“新建”按钮并写入adb.exe路径。例如C:\Users\username\AppData\Local\Android\Sdk\platform tools\
(对于最旧版本的Windows,您必须在内容中添加“C:\Users\username\AppData\Local\Android\Sdk\platform tools\”
就是这样,现在adb reverse tcp:8081 tcp:8081
命令将在构建时自动运行
希望这会对你更有帮助 最后,我让它工作了。我创建了一个新的AVD Nexus6 API 23
.之前我尝试使用Nexus5x API 23。谢谢大家。我也遇到了同样的问题。McAffee位于端口8081和block packager上。 我的解决方案:
react-native start --port your_port
在android emulator中,Command+M显示开发菜单,单击“开发设置”,然后单击“调试服务器主机和端口”,并将其设置为您的_ip:your_端口
然后
我遇到了完全相同的问题(因为这是一个非常普通的消息),但问题不同。在我的例子中,这是一个新创建的项目,模拟器不工作,但一个真正的设备工作了 我的问题是,默认情况下,观察者
inotify
可以在Linux上处理的限制,Linux是一个Linux内核子系统,它可以扩展文件系统,以注意文件系统的更改,并将这些更改报告给应用程序,它被广泛使用,包括android studio和react native;当我试图执行react native run android
时,我的系统上已经分配了所有的观察者,导致进程在同一条消息上失败
要更改inotify可以处理的最大观察者数量,您需要编辑文件sysctl.conf
,该文件通常位于/etc/sysctl.conf
或/etc/sysctl.d/custom_name.conf
,并添加以下行:
fs.inotify.max_user_watches = 5242881
写入文件后,需要执行sysctl-p filename.conf,其中'filename.conf'是保存sysctl的.conf文件的路径和名称。一旦应用了更改,一切都将按预期运行。我也遇到了同样的问题,我的修复程序将运行
$ react-native start
在后台运行
$ react-native run-android
我也有同样的问题。我解决了这个问题,在真正的设备上运行 正如绝地先生所说,麦卡菲封锁了8081端口。因此,我修改了项目文件夹>\node\u modules\react native\local cli\runAndroid\runAndroid.js文件的函数
function tryRunAdbReverse(device) {
try {
const adbPath = getAdbPath();
const adbArgs = ['reverse', 'tcp:8081', 'tcp:8081'];
到
并在上启动了应用程序
react-native start --port 3040
确保端口8081可用。在我的例子中,我的一个服务正在端口8081(tomcat webserver)上运行。对于我来说,我只需要将平台工具添加到Path环境变量中,以便react native可以启动adb服务器 我得到了:
'adb' is not recognized as an internal tool or program
为了解决这个问题,我在我的Path
环境变量中添加了以下内容
C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools
C:\Users\\AppData\Local\Adnroid\sdk\platform tools
然后运行
react native run android
成功了 我知道这个问题已经给出了很多答案,但我认为添加我的解决方案是值得的,希望这能帮助其他人
在我的例子中,问题来自我的虚拟机,虽然我没有调查,但通过创建一个新的虚拟设备,应用程序运行顺利,没有问题
因此,只需创建一个新的虚拟设备即可。:) 在我的情况下(在
'adb' is not recognized as an internal tool or program
C:\Users\<Username>\AppData\Local\Adnroid\sdk\platform-tools
"platforms": [
"ios",
"android",
"web"
],