ReactNative入门篇

前言:

在各种环境安装过程中,会遇到各种各样的问题,有好多问题因为本人忘记第一时间保留错误信息漏掉了,也有一些问题莫名奇妙的好了,如果各位发现有不对的地方或是不完善的地方,随时修改。顺便吐槽下android开发环境太苦逼了。

一. 安装工具

1 搭建iOS环境

参照步骤: https://reactnative.cn/docs/0.51/getting-started.html

注意:以下为安装iOS环境是遇到的问题:

问题1:当修改权限时执行 sudo chown -R whoami /usr/local 报 chown: /usr/local: Operation not permitted 错误时,可能需要重新安装一下 brew工具 (因为在os10.11的时候系统多了一个Rootless机制,Rootless机制是对抗恶意程序的最后防线)

执行如下指令:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

问题2 :安装完brewhome 之后,ruby找不到了,pod也无法使用,如下图所示:


D818CF5E-1CD4-44A2-86C9-A09E5F35B8ED.png

解决方式: 通过brew install ruby ,重新安装了一个ruby

2.搭建Android运行环境

参照步骤: https://reactnative.cn/docs/0.51/getting-started.html 选择android平台,(从此进入一条魔鬼之路)

  1. 如果本机没有java环境,需要下载java环境 下载 1.8 版本; 下载链接 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  2. 下载AndroidStudio 和安装 Android SDK环境 ;
    官方下载地址http://developer.android.com/sdk/index.html 下载正式版 AndroidStudio 工具 (非常慢,并且需要翻墙)
    也可以到这个网站上下载:http://www.androiddevtools.cn

  3. 下载完AndroidStudio后进行安装 参照https://reactnative.cn/docs/0.51/getting-started.html#content里边的具体设置步骤;安装完启动Android Studio时,会报如下图错误:

    8957300F-CA4E-4A18-9DDC-82E3E33344DE.png

    问题原因:没有找到Android SDK环境,说明SDK下载失败,建议最好找网络较好的环境下载,预计要下载一晚上;(非常慢且需要翻墙);
    常规的解决的方法是老老实实下载SDK,但如果网络环境确实不行,可以把其他开发人员的电脑上下载好的 Android SDK考过来,但是这个会引入新的问题,一般情况SDK路径都在/Library/Android/sdk 目录下,可以通过 终端执行echo $ANDROID_HOME查看具体的路径;
    本人就是把其他人员的SDK copy到这个目录下的,本以为万事大吉,结果发现 执行 adb 指令时 发现报错,按照网上查的资料大部分都是说路径不对找不到,但我确认路径没问题,进入/Users/mao/Library/Android/sdk/platform-tools 下手动点击adb 执行脚本,结果发现问题如下图,原来是copy过来的sdk,被系统拦截了,然后手动确认后,其他执行文件我都挨个点了一遍,完美解决了; 但是目前还不知道是否会遇到其他问题,最好还是老老实实从官方下载SDK;


    image.png
  4. 安装Genymotion 和 VirtualBox工具; 下载地址:https://www.genymotion.com/account/login/ 建议官方网站上下载最新版本,老版本在安装模拟器时下载到100%时总会提示下载文件有问题;注意:这个针对个人用户是免费的,需要用户自己注册账号; (下载也比较慢)

    51B35DB8-A179-4FA1-926A-9E958ACE0E28.png

  5. 在Genymotion 中设置custom 的sdk 环境,这样在终端中执行 react-native run-android 可以启动,不然会报错只能通过允许android studio来启动;配置如下图:


    3980CEAB-B401-404D-941F-39CE86EB547E.png

二. 创建RN工程

2.1 直接创建一个RN工程

终端执行 react-native init TestRN //开始自动创建工程

说明:初始化需要一段时间,初始化完成后,会看到如下log信息,说明ReactNativew 环境安装完成;

8FB9F42E-78A7-43BE-90B9-E521A7810520.png

可以通过提示的方法,启动工程:

To run your app on iOS:

cd /Users/mao/Desktop/AwesomeProject

react-native run-ios

  • or -

Open ios/AwesomeProject.xcodeproj in Xcode

Hit the Run button

注意:

问题1:在执行 react-native run-ios 启动工程时,如果遇到如下的错误信息:

xcrun: error: unable to find utility "instruments", not a developer tool or in PATH

解决方法 执行sudo xcode-select -s /Applications/Xcode.app/Contents/Developer/

在启动就正常了

问题2:在执行raect-native start的过程中,出现 ERROR Metro Bundler can't listen on port8081 错误,说明端口被占用了,如图:

8B765B7B-FE17-4938-88FB-B5499065350B.png

解决:

说明端口被占,之前有服务没有停止,关闭终端窗口,重新执行 react-native run-ios 即可,如果还不行,执行如下命令可查询哪些服务在使用该端口号:

lsof -i :8081 // 打印使用8081端口的服务;

kill -9 <PID> //可以杀死该进程;

问题3:通过reac-native run-android 时,出现如下错误:

5EF122CF-C9F7-4A01-97A8-22E133962ED4.png

解决方式:先手动打开Genymotion ,启动一个android模拟器, 在执行 上述指令即可启动android模拟器安装应用;

2.2 在已有工程中引入RN框架

可参照流程:[https://reactnative.cn/docs/0.51/integration-with-existing-apps.html#content](https://reactnative.cn/docs/0.51/integration-with-existing-apps.html#content)
  1. 通过xcode 创建一个新工程

  2. 然后可在项目根目录下创建一个ReactComponent的文件夹用来放react相关的文件;

  3. 在ReactComponent中创建一个package.json 配置文件,这个文件相当于podfile文件一样为安装;

  4. 执行 npm install ,此时会花费一定的时间node_modules文件,有可能出现如下问题:


    AE9862E7-6956-4403-81BB-DE6A355AA0B8.png

    解决: npm cache clean --force 执行一下清理就可以了

  5. 修改podfile文件,引入react库文件,需要注意当前使用的rn版本,可以在package.json中查看,也可以使用react-native -v的方式查看当前的版本;

  6. 修改完podfile文件之后,在此执行一下pod install指令,注意:因为react库在npm 里边已经存在,并且已经下载到本地,所以这里边用的是本地路径;如果出现如下图所示错误, 说明依赖的库没有找到:


    B18B1FED-A1B8-4062-97D3-CF39274B1A15.png

    解决:在podfile文件里边,加入 pod "Yoga", :path => "./ReactCommponent/node_modules/react-native/ReactCommon/yoga” 即可。

  7. 编写index.js 文件即可看到RN执行后的页面效果;

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

推荐阅读更多精彩内容

  • 感赏大女儿最近保持心平气和,回应她爸爸的语气也随和了,跟我的关系进一步亲密了,也多了一些耐心听我有时候的啰嗦,这段...
    延爱阅读 150评论 0 1
  • 雷子赫 夏洛死后,威尔伯带着没有飞走的小蜘蛛。逃出农场他们逃进了一片树林里。他们在树林...
    裴丽云阅读 637评论 0 1
  • 经过这里看到这株凌霄花开了,就想起了那株凌霄花也开了。那株凌霄花每年的这时候都开放,从春节后的枯藤到渐渐的...
    彦主儿阅读 445评论 0 0