React Native01 - 开发环境搭建

前言

本篇的主要内容是React Native的环境配置,并不会涉及React Native的其他任何内容。之所以会在这里用这么多笔墨,是因为很多计划进军React Native的开发人员,就是因为这一步不成功而放弃React Native(我曾经也是其中一员)。

在这里我给大家提供了一种亲测可行的在window上的环境配置方式,在配置过程中可能会因为电脑环境的不同而出现各种奇葩的问题,这个就需要各位自行百度解决了,算是对你学习React Native决心的一种检验。废话不多说了,开始跟我一起遨游React Native吧

一、 必须要安装的软件

1. Chocolatey

  • Chocolatey是一个Windows上的包管理器,可以简单理解为帮助我们在命令行中安装或者卸载软件的工具,此时我们主要是利用该包管理器帮助我们安装Python和Nodejs。

  • 安装方式

     @powershell -NoProfile -ExecutionPolicy Bypass -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
    
  • 可能碰到的问题

    因为安装Chocolatey访问的是国外的服务器,所以在安装过程中可能会安装很慢或者安装失败,此时建议多试几下,如果实在不行那就分别到Python和Nodejs的官网下载这两个软件进行手动安装。下面附上Python和NodeJS的官网, 注意:Python必须下载Python2.0以上版本

    Python官网 NodeJS官网

2. Python2

  • 使用chocolatey安装Python2,目前不支持Python3版本

  • 安装方式

    方式a. chocolatey安装

    choco install python2
    

    方式b. 到上面提供的官网下载安装包,手动安装

3. NodeJS

  • 目前已知Node7.1版本无法正常工作

  • 安装方式

    方式a. chocolatey安装

    choco install nodejs.install
    

    方式b. 到上面提供的官网下载安装包,手动安装

4. 安装完node后建议设置npm镜像以加速后面的过程

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

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

5. Yarn、React Native的命令行工具(react-native-cli)

  • Yarn是Facebook提供的替代npm的工具,可以加速node模块的下载。React Native的命令行工具用于执行创建、初始化、更新项目、运行打包服务(packager)等任务

  • 安装方式

    npm install -g yarn react-native-cli
    
  • 可能碰到的问题

    如果你遇到EACCES: permission denied权限错误,可以尝试运行下面的命令(限linux系统): sudo npm install -g yarn react-native-cli.

6. Java Development Kit(JDK)

  • 需要JDK 1.8或者更高版本

  • 可以在命令行中输入java -version来查看版本号,如果显示java不是命令,就说明你没有安装java

  • 安装方式

    方式a. chocolatey安装

     choco install jdk8
    

    方式b. 到java官网下载安装包,手动安装

    java官网

7. Android Studio

  • 需要Android Studio 2.0或者更高版本

  • Android Studio包含了运行和测试React Native应用所需的Android SDK和模拟器

    • 除非特别注明,请不要改动安装过程中的选项。比如Android Studio默认安装了 Android Support Repository,而这也是React Native必须的(否则在react-native run-android时会报appcompat-v7包找不到的错误)

    • 记得将你的SDK安装到哪里了,后面马上就会用到

  • 安装步骤

    1. 官网下载安装包,安装过程中,确认按钮都勾选了,尤其是Android SDK和Android Device Emulator。

      android studio中文官网

    2. 在初步安装完成后,选择Custom安装项


    3. 安装完成后,在Android Studio的欢迎界面中选择Configure | SDK Manager。


    4. 在SDK Platforms窗口中,选择Show Package Details在Android 6.0 (Marshmallow)中勾选以下选项

      • Google APIs、
      • Android SDK Platform 23、
      • Intel x86 Atom System Image、
      • Intel x86 Atom_64 System Image
      • Google APIs Intel x86 Atom_64 System Image


    5. 在SDK Tools窗口中,选择Show Package Details,

      • 在Android SDK Build Tools中勾选Android SDK Build-Tools 23.0.1(必须是这个版本)。

      • 还要勾选最底部的Android Support Repository.


    6 设置ANDROID_HOME环境变量

    • 打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 新建

    • 具体的路径可能和下图不一致,请自行确认


二、推荐安装的工具

1. Gradle Daemon

  • 开启Gradle Daomon可以极大地提升java代码的增量编译速度

  • 开启方式

    (if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
    

2. 将Android SDK的Tools目录添加到PATH变量中

  • 把Android SDK的tools和platform-tools目录添加到PATH变量中,以便在终端中运行一些Android工具

  • 打开控制面板 -> 系统和安全 -> 系统 -> 高级系统设置 -> 高级 -> 环境变量 -> 选中PATH -> 双击进行编辑,同一个环境变量如果有多个路径,用分号隔开

![](http://upload-images.jianshu.io/upload_images/3248034-3fb22f795025d7f5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

3. 安卓模拟器-Genymotion

  • 比起Android Studio自带的原装模拟器,Genymotion是一个性能更好的选择,但它只对个人用户免费

  • 下载地址

    Genymotion模拟器下载地址

三、测试安装

1. 在当前命令行所在路径创建一个React Native项目,

  • 时间会比较长,有VPN的同学,建议打开VPN
react-native init AwesomeProject
  • 结束以后你会得到如下一个目录


2. 进行到项目所在目录

cd AwesomeProject

3. 在模拟器上运行安卓项目

运行之前要保证模拟器已经打开,或者已经连接上真机

react-native run-android

完成以后,会新建一个命令行窗口,帮我们打开一个端口号为8081的服务器,如果你把这个新建的命令行窗口关了,服务器就关了,就无法实现热更新了

4. 如果在模拟器或者真机上如下显示就正常了

4. 真机运行项目,无法正常显示解决办法

  1. 是否打开该软件的弹出框的权限

  2. 是否和电脑连接同一个网络

  3. 是否配置IP地址,配置过程如下

    a. 这时候我们摇一摇手机,会出现一个窗口
    b. 点击Dev Settings后,点击Debug server host & port for device,
    c. 设置电脑的无线局域网IP地址和端口号,端口号默认是8081,例如192.168.2.13:8081
    d. 重启这个软件

四、修改项目

现在你已经成功运行了项目,我们可以开始尝试动手改一改了:

  • 使用你喜欢的文本编辑器打开index.android.js找到里面的文本进行修改
  • 然后摇动手机,Reload刷新(模拟器双击键盘上的R键即可)

五、补充

1. react native在iOS上仅支持iOS7以上,Android仅支持Android4.1以上

中文帮助文档 github地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,044评论 25 707
  • 尽管在移动开发中,原生APP的开发成本很高,但现阶段基于原生开发仍然是必须的,因为Web的用户体验仍无法超越Nat...
    奔跑的大橙子阅读 5,376评论 0 11
  • 总结:总和各方面情况的结论。 一、爬山 有过一次夜里在山里迷路的恐惧、有过一次皮肤多处被晒伤的毁容(脱皮)、有过一...
    听风看树望天空阅读 430评论 2 2
  • 今天中午包饺子,李烽熠在我们邀请下热情的帮忙,一会摁剂子,一会拾饺子,还时不时地教弟弟,忙的不亦乐乎。她和弟...
    李烽熠妈阅读 123评论 0 0
  • 题目:根据二叉树的先序遍历结果构建二叉树. 创建二叉树 ` func createTreeByPreOrd...
    FlyElephant阅读 1,008评论 0 0