在Windows下搭建React Native Android开发环境



  • 最新情报


    推荐新手们先看一下环境搭建的视频教程


    安装JDK

    Java官网下载JDK并安装。请注意选择x86还是x64版本。

    推荐将JDK的bin目录加入系统PATH环境变量。

    安装Android SDK

    可以单独安装Android SDK,也可以通过Eclipse ADT或者Android Studio一并安装。推荐使用Android Studio,以下说明会默认以Android Studio的方式说明。请注意选择x86还是x64版本。

    为了加速下载,推荐从AndroidDevTools下载。

    然后进入SDKManager(可通过Android Studio菜单Tools-Android-SDK Manager),确保以下项目已经安装并更新到最新:

    • Tools/Android SDK Tools (24.3.3)

    • Tools/Android SDK Platform-tools (22)

    • Tools/Android SDK Build-tools (23.0.1)(这个必须版本严格匹配23.0.1)

    • Android 6.0 (API 23)/SDK Platform (1)

    • Extras/Android Support Library(23.0.1)

    • Extras/Android Support Repository

    推荐使用腾讯Bugly的镜像加速下载。查看说明

    推荐将SDK的platform-tools子目录加入系统PATH环境变量。

    最后,把ANDROID_HOME环境变量设置为你sdk所在目录。

    安装C++环境

    推荐从itellyou下载并安装Visual Studio 2013或2015。也可选择Windows SDK、cygwin或mingw等其他C++环境。编译node.js的C++模块时需要用到。
    如果使用VS2015,你需要在命令行中设置npm config set msvs_version 2015 --global

    安装git for windows

    这里下载安装,安装过程中注意选择"Run Git from Windows Command Prompt"

    安装Python

    官网下载并安装python 2.7.x(3.x版本不行)

    安装node.js

    官网下载node.js的官方4.1版本或更高版本。

    建议设置npm镜像以加速后面的过程(或使用科学上网工具)。

    npm config set registry https://registry.npm.taobao.org --global
    
    npm config set disturl https://npm.taobao.org/dist --global
    

    安装react-native命令行工具

    npm install -g react-native-cli
    

    创建项目

    进入你的工作目录,运行

    react-native init MyProject
    

    并耐心等待数(或数十)分钟。

    运行packager

    react-native start
    

    可以用浏览器访问http://localhost:8081/index.android.bundle?platform=android看看是否可以看到打包后的脚本(看到很长的js代码就对了)。第一次访问通常需要十几秒,并且在packager的命令行可以看到形如[====]的进度条。

    如果你遇到了ERROR Watcher took too long to load的报错,请尝试修改node_modules/react-native/packager/react-packager/src/FileWatcher/index.js,将其中的MAX_WAIT_TIME 从25000改为更大的值(单位是毫秒)

    运行模拟器

    推荐使用BlueStacks不过要小心它推送的广告和垃圾应用。

    如果有真机,可以不必运行模拟器,要配置好驱动,使得adb devices可以看到对应的设备。

    安卓运行

    保持packager开启,另外打开一个命令行窗口,然后在工程目录下运行

    react-native run-android
    

    首次运行需要等待数分钟并从网上下载gradle依赖。(这个过程屏幕上可能出现很多小数点,表示下载进度。这个时间可能耗时很久,也可能会不停报错链接超时、连接中断等等——取决于你的网络状况和墙的不特定阻断。总之要顺利下载,请使用稳定有效的科学上网工具。)

    运行完毕后可以在模拟器或真机上看到应用自动启动了。

    如果apk安装运行出现报错,请检查上文中安装SDK的环节里所有依赖是否都已装全,platform-tools是否已经设到了PATH环境变量中,运行adb devices能否看到设备

    至此,应该能看到APP红屏报错,这是正常的,我们还需要让app能够正确访问pc端的packager服务

    摇晃设备或按Menu键(Bluestacks模拟器按键盘上的菜单键,通常在右Ctrl的左边 或者左Windows键旁边),可以打开调试菜单,点击Dev Settings,选Debug server host for device,输入你的正在运行packager的那台电脑的局域网IP加:8081(同时要保证手机和电脑在同一网段,且没有防火墙阻拦),再按back键返回,再按Menu键,在调试菜单中选择Reload JS,就应该可以看到运行的结果了。

    如果真实设备白屏但没有弹出任何报错,可以在安全中心里看看是不是应用的“悬浮窗”的权限被禁止了。

    安卓调试

    打开Chrome,访问 http://localhost:8081/debugger-ui,应当能看到一个页面。按F12打开开发者菜单。

    在模拟器或真机菜单中选择Debug JS,即可开始调试。



  • 感谢楼主,按楼主攻略,终于装成功了。因为我没有使用Eclipse ADT或者Android Studio等IDE来装Android SDK, 本地没有maven的user/.m文件夹。运行react-native run-android时,会找不到依赖,于是去掉MyProject/android/build.gradle 里的mavenLocal(),通过jcenter(需要代理,否则太慢了)下载依赖,最终成功了。



  • @tdzl2003 楼主厉害啊。



  • 请问如何指定编译模块时用mingw环境呢



  • 你好 我在start的时候总是卡在了 这块不动 请教是怎么处理啊 谢谢
    0_1453087261967_111.png



  • @woainbadc 這不是卡住
    是server已經開好了
    這時可以用android studio執行
    應該就可以看到結果了 :+1:



  • 此回复已被删除!


  • 0_1457149688533_upload-4d201a8f-741c-47cb-881e-26c2ec441223
    为什么我这里找不到Extras/Android Support Repository ?


  • administrators

    @aminhuang 这个名字在新版中已经改成Local Maven repository for Support Libraries了



  • ANDROID_HOME环境变量要配好,否则react-native run-android命令会编不过,小白注意:)



  • @jiangqqlmj 这个好.:+1:


  • 禁止

    但是我配置好之后要在哪个页面去写自己的react代码呢?以前在cordova中有清晰的HTML和JS页面,但是这个目录结构react部分在哪我找不到index.html文件在哪?


  • administrators

    @jasonhzh 建议去看10分钟视频教程系列 http://v.youku.com/v_show/id_XMTQ5OTE3MjkzNg==.html


  • 禁止

    @sunnylqm 谢谢,我还没看完这个视频,难怪!


  • 禁止

    @sunnylqm 视频是ios的我用的是安卓,我还是不知道怎么调试啊,我说的是用浏览器调试不是用终端APP去调试。


  • 禁止

    @sunnylqm 我输入的是http://localhost:8081/debugger-ui,为什么我加了一个按钮看不到效果?这个页面为什么不是welcome页面和视频的页面不一样啊?welcome页面的地址是多少啊?


  • administrators

    @jasonhzh 环境搭建教程的最后有讲怎么调试,ios和android基本一样。http://v.youku.com/v_show/id_XMTQ4OTYyMjg4MA==.html?from=s1.8-1-1.2



  • @kevinwon 说:

    MyProject

    我在react-native start的时候出现这个情况:

    0_1458451049951_2222.png

    看看是什么问题



  • @wangjun491280 要进入你创建出来的项目目录才能执行react-native start



  • @tdzl2003 说:

    您好,我今天刚刚接触RN,但是到配置环境的最后一步时:Unable to download JS bundle,按您说的更改了Debug server host for device,输入了我电脑的IP加:8081,但是没有用。。。依然红屏...请问这是什么原因啊,搞了一晚上了。。。



  • @Taki 降低gradle版本,改成1.2.3。在bundle.gredle.


登录后回复