【问题标题】:No bundle URL present (react native)不存在捆绑 URL(反应原生)
【发布时间】:2017-10-12 11:23:24
【问题描述】:

刚刚安装了 react native 并试图让 Hello World 启动并运行。过去几个小时一直收到此错误:

 "No bundle URL present.Make sure you're running a packager server
 or have included a .jsbundle file in your application bundle."

我已经提到了这个:What means of no bundle URL present in react-native? 和其他类似的问题,并尝试了一切:使用我的 IP 地址,运行和不运行时 react-native run-iso 和 npm install 的不同组合,尝试删除构建,清理项目,重启Xcode,模拟器多次,尝试react-native-upgrade,编辑成.plist允许任意加载,手动设置我的index.ios.js的路径,一切正常。

我注意到很多人在尝试在他们的设备上构建时遇到了这个问题。我不想做任何花哨的事情,只是让“hello world”启动并运行。

还有其他我不知道的解决方案吗?

【问题讨论】:

标签: react-native


【解决方案1】:

要进行调试,最好的第一步是滚动浏览终端窗口中输出的日志文本,在该窗口中您触发了“npx react-native run-ios”并搜索“错误”或“失败”之类的词。这将为您指出比一般的“没有捆绑 URL 存在”错误更具体的内容。

例如,您可能会看到类似“BUILD FAILED以下构建命令失败:ProcessInfoPlistFile”的内容。在这个例子中,我会知道去检查我的 Info.plist。您可能会看到一些不同的东西,但调试方法仍然是相同的。

如果您尝试运行 iOS,另一个想法是使用 Xcode 本身构建您的应用程序,方法是使用 Xcode 打开 .xcworkspace,然后查看其错误消息。

同样,如果您尝试运行 Android,请尝试使用 Android Studio 运行并查看其错误消息。

【讨论】:

    【解决方案2】:

    在真实设备中运行时遇到类似问题,上传到 testflight 上传和安装后会崩溃,这个问题是致命的

    通过此链接保存 https://onexlab-io.medium.com/no-bundle-url-present-fixed-ca2688a80f66

    【讨论】:

    • 您好,欢迎来到堆栈溢出。不要仅仅链接到回答问题的网页,请花点时间在此处提供答案并通过引用链接文章来支持它。
    【解决方案3】:

    对我有用的解决方案。

    你需要运行:

    yarn start
    

    同时(在不同的终端窗口中):

    yarn run:ios
    

    【讨论】:

      【解决方案4】:

      按照以下步骤解决此问题::

      1. 打开终端窗口
      2. cd 进入 YOUR_PROJECT/ios
      3. 删除带有rm -r build 的构建文件夹
      4. 再次运行react-native run-ios

      或者,您可以打开 Finder,导航到 YOUR_PROJECT/ios 并删除构建文件夹。然后再次运行react-native run-ios

      【讨论】:

        【解决方案5】:

        cd 到YOUR_PROJECT/iosrm -r build,然后再次运行react-native run-ios

        【讨论】:

        • 然后我们需要移动到项目中,使用 react-native run-ios 命令。谢谢它对我有用。
        • 构建目录对我来说不存在 - 我猜它已经清理了???根据reactnative.dev/docs/environment-setup,我只是使用expo 解决方案在我的实际iPhone 设备(而不是模拟器)上运行
        • 我也没有构建目录@HankCa,你能找到解决方案吗?
        • 不,我暂停了 React Native 的工作。我很快就会重新开始。首先我会阅读newline.co/fullstack-react-native(除了我喜欢 newline.io 书籍和商业模式之外,我没有任何隶属关系)。他们还有一篇文章-newline.co/@kchan/…,我不确定这是否来自书中。我会关注大量其他资源,包括blog.crowdbotics.com/…。这项技术最难的部分是需要了解原生平台以及 React。
        【解决方案6】:

        在我运行以下命令清理项目以查看由于缓存等原因不可见的更改后,我遇到了这个问题:

        watchman watch-del-all
        rm -rf node_modules && npm install
        rm -rf /tmp/metro-bundler-cache-* or npm start -- -- reset-cache
        rm -rf /tmp/haste-map-react-native-packager-*  
        

        问题的原因在于 dom-structure 中的注释,它没有让应用程序在设备上运行。 所以,也要检查 cmets ;)

        【讨论】:

          【解决方案7】:

          运行以下代码:

          killall -9 node
          rm -rf ios/build
          react-native run-ios
          

          它将打开launchpackager.command,应用程序将安装在ios模拟器上

          【讨论】:

            【解决方案8】:

            我有同样的问题,我的问题是 info.plist 我只是 配置如下:

            <key>NSAppTransportSecurity</key>
                <dict>
                    <key>NSAllowsArbitraryLoads</key>
                    <true/>
                    <key>NSAllowsArbitraryLoadsInWebContent</key>
                    <true/>
                    <key>NSAllowsLocalNetworking</key>
                    <true/>
                </dict>
            

            来自这个解决方案https://stackoverflow.com/a/48471978/1627358

            然后使用以下命令添加 Bash 配置文件 .bashrc:

            echo "alias rni=\"kill \$(lsof -t -i:8081); rm -rf ios/build/; react-native run-ios\"" >> ~/.bashrc; source ~/.bashrc
            

            然后运行rni

            来自这个解决方案https://stackoverflow.com/a/44080527/1627358

            它对我很有效。

            【讨论】:

              【解决方案9】:

              我在尝试将文件同步到 iCloud Drive 时遇到了这个问题。我不知道是什么原因造成的,但是当我关闭 iCloud Drive 并重新安装 brew 和 Node 后,它又开始工作了。我只能认为,当我打开 iCloud Drive 时,我可能最终拥有了两个不同的 Node 版本或任何其他依赖项。

              【讨论】:

                【解决方案10】:

                假设您使用nvm 并安装了多个版本的节点,这里是解决方案:

                1. 假设您在node v6.9.5 中运行npm install -g react-native-cli
                2. 现在通过运行nvm alias default 6.9.5node v6.9.5 设为默认值
                3. 现在运行react-native run-ios

                问题是,您通过nvm 安装了多个版本的节点,并且要安装react-native-cli,您已经切换或安装了最新版本的节点,该节点尚未标记为指向nvm 的默认节点。当您运行react-native run-ios 时,这会打开另一个新的终端窗口,其中默认的nvm 不指向您安装react-native-cli 的节点版本。只需按照上面的设置,我希望这会有所帮助。

                在这里回答相同:https://stackoverflow.com/a/45267703/1292050

                【讨论】:

                • 这解决了我的问题,因为 diff 节点版本是默认的,并且 run-ios 命令会弹出一个新的终端窗口,该窗口默认为超级旧节点版本。感谢您的提示!
                【解决方案11】:

                不久前我也遇到了同样的问题。看来,如果您将项目重命名为其他名称并且项目文件夹本身已重命名,则需要确保将旧名称的所有实例替换为新名称,并且不要忘记在 ProjectName 中更改 .xcscheme 的文件名> ios > ProjectName.xcodeproj > xcshareddata > xcschemes。我还必须删除构建目录。希望这也适用于您!

                【讨论】:

                  猜你喜欢
                  • 2018-12-06
                  • 2017-10-15
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-07-28
                  • 1970-01-01
                  • 2017-08-14
                  • 2022-11-04
                  相关资源
                  最近更新 更多