【问题标题】:Can't find variable: _d when running react native app for the first time第一次运行本机应用程序时找不到变量:_d
【发布时间】:2017-12-20 13:10:12
【问题描述】:

我刚刚使用 react-native init demoone 创建了 react native 应用程序并使用 react-native start 启动了 js 服务器,然后尝试使用 react-native run-android 执行应用程序 但是我在安装模拟器时收到以下错误。

找不到变量:_d(http://10.0.2.2:8081/index.bundle?platform=android&dev=true&minify=false:1)

【问题讨论】:

  • 确保您的设备和捆绑包在同一个网络中
  • 是的,他们都在同一个系统中工作,因为它是模拟器并在同一个系统中运行
  • 这与 babel 如何改变你的 jsx 有关。您应该以某种方式查看捆绑的代码并查看 __d 引用的内容。
  • 你能解释一下捆绑的代码吗

标签: android reactjs react-native


【解决方案1】:

我在尝试在 Win10 中设置 react-native 环境并尝试运行示例项目时遇到了同样的问题。

经过数小时的撞击和滚动浏览网站后,在here 中找到了解决方案!

问题是,当您从项目根文件夹运行 react-native run-android 时,它会自动在端口 8081 处启动 node-js 打包服务器的默认实例。由于某种原因,它不会让 hot/live/ 或甚至手动重新加载工作并引发相同的非描述性错误。

解决方案是停止所有正在运行的应用程序实例并运行:

    yarn start
    // or
    npm start

从根文件夹手动创建您自己的捆绑程序服务器。更喜欢 npmyarn 而不是 react-native start(为我工作)

然后执行

    react-native run-android

使用另一个 cmd 窗口在模拟器上运行应用程序。

所以想法是每次运行应用程序时都创建一个单独的捆绑器。

像魅力一样工作!

【讨论】:

    【解决方案2】:

    你需要运行这个命令来修复它:

    adb reverse tcp:8081 tcp:8081
    

    这会在您的模拟器/设备与您的端口8081 之间建立一个反向代理。在运行此命令之前,请确保您的模拟器和 react native bundler(react-native start) 正在运行。 我遇到的另一件事是 android 模拟器,在你的应用程序的开发设置中将调试服务器主机设置为 localhost:8081,否则它不会连接到远程调试器。

    【讨论】:

      【解决方案3】:

      由于我创建了运行良好的新应用程序,因此已解决。

      【讨论】:

        【解决方案4】:

        尝试使用不同的端口(例如 8088)启动 react-native

        react-native start --port 8088
        

        然后

        react-native run-android
        

        【讨论】:

          【解决方案5】:

          停止项目,然后cd android && ./gradlew clean && cd .. && react-native run-android。会正常工作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2018-12-03
            • 2020-07-05
            • 1970-01-01
            相关资源
            最近更新 更多