当我运行一个react-native项目时,我得到一个错误,没有bundle URL,但我不知道我做了什么错误,我很困惑。


当前回答

原因:

这是因为应用程序无法找到服务器(通过javascript代码为UI服务)。

解决方案:

确保所有相关的react native关闭(不是必要的,只是为了我的解决方案有一个干净的开始,在我的解释后,你可以弄清楚这是需要的还是不需要的) 先运行NPM Run start或yarn start 等待此命令完成工作(通常你会看到加载依赖关系图,完成)。 运行react-native Run -ios/android

解释:

React Native包含2部分: 本地部分 Javascript部分 构建命令: React-native run-ios/android是构建本机部分,然后部署到设备上,并在设备上启动应用程序(模拟器/模拟器/真实设备)。这通常需要3~4分钟才能完成。 npm run start或yarn start是构建javascript部分,并启动开发服务器为应用程序提供构建的UI。这通常需要30秒完成。

通常情况下,javascript部分先完成,然后是本地部分。(根据他们使用的时间)。

=>这只适用于第一次构建(新鲜构建)。

=>重建:

原生部分只需要10~15秒来检查更改,因为在javascript部分构建和服务之前,原生部分=>没有更改。(我不确定javascript部分是否被重建,但它比本地部分花费了更长的时间) 这就是为什么我们有这个问题,应用运行时要求的东西还不存在。

奖金:

React-native run-ios/android会自动启动开发服务器。 这就是为什么当你在react-native init <app_name>之后运行react-native run-ios/android时,一切都运行得很好。(因为自动启动功能和新构建的时间是上面的状态)。 其他“移除”解决方案之所以有效,是因为它们迫使人们重建。

在这个答案上使用的时间是相对于我的机器=>可能不同于其他人。

其他回答

好吧,这听起来可能很奇怪,但这些答案对我都没用。 我现在在react-native 0.60,问题发生在ios和android上。 对我来说唯一有效的解决办法就是跑步 React-native run-ios或React-native run-android 然后,当出现错误时,运行 npm install(保持捆绑器和模拟器打开) 然后运行react-native run-ios或react-native run-android

这个问题发生在我身上,因为地铁捆绑机启动并收到焦点,而我正在另一个窗口的键盘上打字。我不小心输入了新打开的终端窗口,导致地铁捆扎机崩溃。重新运行react-native run-ios并耐心等待修复了它。

关闭/打开设备/ mac上的wi-fi,重建应用程序

更深层次的调试:查看XCode日志,它可能包含:“无法连接到服务器”和确切的URL。

我尝试了下面所有的解决方案,但都不起作用:

Sudo xcodebuild -license或 使用rm -r build删除build文件夹并运行react-native run-ios或 NPM启动并运行react-native run-ios 添加NSAppTransportSecurity到localhost

我是这样解决的:

打开主机文件sudo vi /private/etc/hosts(如果你使用VSCode,使用这个sudo code /private/etc/hosts) 如果不存在,添加三行

127.0.0.1 localhost
255.255.255.255 localhost
::1 localhost

再次运行react-native Run -ios。

我是这样做的:

打开终端窗口 cd到YOUR_PROJECT/ios 使用rm -r build删除build文件夹 再次运行react-native Run -ios