一段时间以来,我一直在尝试在我的 Windows 机器上创建基本的 react native Android 应用程序。即使在部署最基本的“Welcome to React Native”应用程序时,在我的模拟器打印“Fetching JS Bundles”时,我也会经历非常长的等待时间。这些时间已经过去 4 分钟了。
我尝试了各种模拟器,启用了 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 模拟器的问题:
通过模拟设备摇动访问开发者菜单(在应用内,在模拟器中)。打开
Additional Tools -> Accelerometer
并按窗口底部的 Play,在Recorded data: shake
下方。点击
Dev Settings
(最后一个菜单项)。单击
Debug server host & port for device
并将值设置为网络上我的PC 的公共(public)IP/名称:端口
。 (例如devpc.mynet.local:8081
或192.168.1.99:8081
)。关闭 React 应用。
运行
adb reverse --remove-all
以撤消我之前的adb reverse tcp:8081...
命令。通过运行
react-native run-android
从我的电脑重新启动一切。观察这一次,Fetching JS Bundle
步骤几乎立即执行。
我刚刚发现了适用于我自己环境的解决方法。我没有在任何实际设备上尝试过。此外,我想知道是否有一种方法可以从代码中指定它,以便它在第一次就可以正常工作(而不是必须通过在设备上运行应用程序并在开发设置中进行设置来指定我的计算机的公共(public) IP/名称那里……)
官方文档:
更新 1:这里有一些关于配置 debug_http_host
设备首选项的相关阅读。
关于android - "Fetching JS Bundle"非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37958376/