我试图在我的Nexus5 (android 5.1.1)上运行AwesomeProject。

我能够构建项目并将其安装到设备上。但当我运行它时,我看到一个红色屏幕,上面写着

无法下载JS包。您是否忘记启动开发服务器或连接设备?

在react原生iOS中,我可以选择离线加载jsbundle。我如何在Android上做同样的事情?(或者至少,我可以在哪里配置服务器地址?)

更新

要使用本地服务器运行,请在react-native项目根目录下运行以下命令

React-native start > /dev/null 2>&1 & Adb reverse tcp:8081 tcp:8081

请看disssitka的回答,了解更多细节。

要在没有服务器的情况下运行,可以运行以下命令将jsfile捆绑到apk中:

在android/app/src/main下创建一个assets文件夹 旋度“http://localhost: 8081 / index.android.bundle吗?平台=android" -o "android/app/src/main/assets/index.android.bundle"

详情请看kzzzf的回答。


当前回答

最初的问题是关于在物理设备中重新加载应用程序。

当你在物理设备上调试应用程序时(比如通过adb),你可以通过点击设备左上方的“action”按钮重新加载JS包。这将打开选项菜单(重新加载,远程调试JS…)

希望这能有所帮助。

其他回答

我没有足够的声誉来评论,但这是指dsissitka的答案。 它也可以在Windows 10上运行。

重申一下,这些命令是:

cd (App Dir)
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081

好吧,我想我知道问题出在哪里了。这和我当时扮演的守望者有关。

在一个新的shell中,运行brew update 然后:酿解守夜人 然后:酿造安装守望者

现在,您可以从项目文件夹中运行react-native start

我让这个shell打开,创建一个新的shell窗口并从我的项目文件夹中运行:react-native run-android。世界一切都好。

ps.我最初玩的是3.2版的守望者。这将我升级到3.7。

pp。我是新手,所以这可能不是最快的解决方法,但对我来说很有效。

*在设备上运行/调试的更多信息

你可能会发现,如果你将应用部署到Android设备上,而不是模拟器上,你会看到一个红色的死机屏幕,错误提示无法加载JS Bundle。您需要为您的设备设置调试服务器为您的计算机运行react…名称或IP地址。

按设备菜单按钮 选择Dev Settings 为设备选择调试服务器主机或更改包位置 输入你的机器的IP和重载JS加上反应端口,例如192.168.1.10:8081

更多信息:http://facebook.github.io/react-native/docs/running-on-device-android.html

检查你的wifi连接。

另一种可能是你没有连接到wifi,连接到错误的网络,或者你的开发设置中的ip地址是错误的。出于某种原因,我的android与wifi断开了连接,我开始在不知不觉中得到这个错误。

一个简单的解决方案,适用于我Ubuntu 14.04。

react-native run-android

模拟器(已经启动)将返回:无法下载JS Bundle;重新启动JS服务器:

react-native start

在模拟器上点击重载JS。 这对我很管用。希望对大家有所帮助

我发现这很奇怪,但我有一个解决办法。 我注意到每隔一段时间我的项目文件夹变成只读,我不能从VS.中保存它,所以我读了一个建议,将NPM从本地用户PATH转移到系统范围的PATH全局变量,它就像一个咒语。