我试图在我的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的回答。


当前回答

此错误可以通过以下步骤轻松解决:

    //run the command at /android sdk / platforms-tool folder
        adb reverse tcp:8081 tcp:8081

    //now come to root folder of your app
    1. npm start
    2. create 'assets' folder inside rootApp/android/app/src/main/
    3. curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
    4. make sure anyone physical or virtual device attached is running.
    5. react-native run-android

其他回答

显然adb反向是在Android 5.0中引入的 在“adb reverse”上出现两次“错误:关闭”

我想我们必须继续kzzzf的答案

检查你的wifi连接。

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

删除你手机上的App !我尝试了几个步骤,但最终还是成功了。

If you tried to run your app before but failed, delete it from your android device. Run $ react-native run-android Open the React Rage Shake Menu from within your app on your android device, go to Dev Settings and then to Debug server host & port for device. There enter your server IP (IP of your computer) and host 8081, e.g. 192.168.50.35:8081. On a mac you can find the IP of your computer at System Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Address. Open the Rage Shake Menu again and click Reload JS.

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

重申一下,这些命令是:

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

当你的服务器运行(react-native start)时,将JS文件捆绑到你的apk中下载到你的应用程序的assets目录:

curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

在下一个版本(0.12)中,我们将修复react-native bundle命令,以与预期的android项目一起工作。