android - "Fetching JS Bundle"非常慢

标签 android react-native

一段时间以来,我一直在尝试在我的 Windows 机器上创建基本的 react native Android 应用程序。即使在部署最基本的“Welcome to React Native”应用程序时,在我的模拟器打印“Fetching JS Bundles”时,我也会经历非常长的等待时间。这些时间已经过去 4 分钟了。

enter image description here

我尝试了各种模拟器,启用了 HAXM,启用了 gradle,尝试了 Intel_x64、Intel_x86、适用于 x64/x86 的 Google API,但速度仍然很慢。

关于我还可以尝试什么的任何建议?

最佳答案

我通过不使用 adb 反转我的 TCP 端口 8081 解决了这个问题。

更新 2:我以为我通过使用我的公共(public) IP/主机名解决了这个问题,但结果是 react-native run-android 重新创建了 adb reverse 每次执行它。有关相关链接,请参阅底部的更新 1。

原创:

当我最初为 React Native 设置我的机器时,我运行了以下命令让 React 应用程序与 React Packager 通信:adb reverse tcp:8081 tcp:8081。我观察到每次运行 react-native run-android 时,我的模拟器都会停留在“Fetching JS Bundle for long time”。

解决 Windows 模拟器的问题:

  1. 通过模拟设备摇动访问开发者菜单(在应用内,在模拟器中)。打开 Additional Tools -> Accelerometer 并按窗口底部的 Play,在 Recorded data: shake 下方。

  2. 点击 Dev Settings(最后一个菜单项)。

  3. 单击Debug server host & port for device并将值设置为网络上我的PC 的公共(public)IP/名称:端口。 (例如 devpc.mynet.local:8081192.168.1.99:8081)。

  4. 关闭 React 应用。

  5. 运行 adb reverse --remove-all 以撤消我之前的 adb reverse tcp:8081... 命令。

  6. 通过运行 react-native run-android 从我的电脑重新启动一切。观察这一次,Fetching JS Bundle 步骤几乎立即执行。

我刚刚发现了适用于我自己环境的解决方法。我没有在任何实际设备上尝试过。此外,我想知道是否有一种方法可以从代码中指定它,以便它在第一次就可以正常工作(而不是必须通过在设备上运行应用程序并在开发设置中进行设置来指定我的计算机的公共(public) IP/名称那里……)

官方文档:

更新 1:这里有一些关于配置 debug_http_host 设备首选项的相关阅读。

关于android - "Fetching JS Bundle"非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37958376/

相关文章:

android - Skobbler Android SDK : problems with SKMaps. zip

android - Google Maps Elevation Api 值错误

javascript - 测试套件无法运行 TypeError : Cannot read property 'default' of undefined

javascript - 指定组件所需的 props

react-native - 添加 flex :1 to contentContainerStyle 时 ScrollView 与内容一起消失

javascript - 使用 React Native 一次启动多个 Animated.timing

java - 点击“后退”按钮时 MediaPlayer 出现空指针异常

android - 如何将 ImageButton 自定义类转换为 ImageButton

java - 当我按下返回按钮时应用程序崩溃

javascript - 在 Javascript 中使用 map 数组时未定义的值