mac上配置react-native环境run-ios/run-android命令遇到的问题

新报错(rn版本:0.53.3)2018.3.6

今天在搞react-native环境时,遇到了一些坑,这里记录一下。

首先最重要的一点是一定要按官网一步一步来,不然可能会出现一些奇奇怪怪的问题!

官网配置doc

run-ios问题

ios主要是版本问题,就如官网上说的一样,0.45及以上的版本,在run-ios时会出现报错,这里就按官网上给的国内链接来解决。

解决教程

这里说一下,如果直接run-ios,其实~/.rncache文件夹里也可能会下载到对应的文件,但是还是基本百分之百报错,找不到boost……什么文件。所以从网盘下载下来后,记得一定要把~/.rncache文件夹里的文件全替换成自己下载的。

之后init的项目就没问题了。

run-android问题

环境和SDK问题

按官网教程配置好环境。

如果出现这个问题可以在run之后用android studio打开等待初始化完成(打开后如果初始化失败,看log窗口,如果提示要安装什么就点击安装,一般要安装两个。这里安装的东西不是更新gradle!)。(注意一点,studio可能打开会提示更新gradle到3.3,不要更新!)。

gradle和权限问题

gradle默认都是下载2.14.1的,在run-android时可能会出现下载失败或者长时间下载不了,这时就手动去下载

下载完成后将其放入某个文件夹下,再取出文件路径,用其替换项目中 android/gradle/wrapper/gradle-wrapper.properties 的 distributionUrl。

distributionUrl=file\:///{路径}/gradle-2.14.1-all.zip

mac中调用本地文件时可能会出现权限问题,这时选中你的项目文件夹,右键选择显示简介,拉到最下面,如下图:

先点击小锁,输入密码解锁,然后点击设置图标按钮,选择应用到包含的项目,确定,点击小锁锁定。接下来可以run啦~

模拟器问题

如果出现这个问题就需要先打开你的模拟器,如果您是用的Genymotion,报错的话有可能是adb设置问题,解决如下图,路径选择您自己的sdk目录。

更新(rn版本:0.53.3)2018.3.6

报错如下:

刚遇到这个问题时一脸懵比,没有有效的报错信息可供参考。

于是,去检查了adb是可以用的,sdk路径也没有问题。

检查模拟器也是连接上了。

经过一番百度 and google并没有什么进展,尝试使用如下命令指定模拟器运行:

终于运行了起来,但是每次都要带参很麻烦。

想到会不会是打开构建文件没有权限导致的没有任何报错,于是在项目根目录执行以下代码:

chmod 755 android/gradlew

对于权限命令不理解的可以点这里

给到权限后执行react-native run-android,成功运行~

ps:修改权限后 android/gradlew 文件引起了一个问题(虽然文件内容没有变化,但是文件在git上是有变化可以上传的),在另一台window电脑上使用mac修改权限后的gradlew文件引发了如下错误:

可以进入项目android目录执行命令gradlew clean,再回到项目根目录执行react-native run-android即可,相当于重新初始化了gradlew文件。 所以在mac上修改权限后的gradlew就不要上传git了。

如果大家有什么更好的办法,希望评论不吝赐教,十分感谢。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏别先生

JSP连接mysql数据库的重点

1:用mysql驱动把mysql与tomcat的连接起来。把mysql驱动包(不用解压)放到Tomcat安装目录中lib文件夹下即可。 ? 2:然后在自己的新...

2858
来自专栏Laoqi's Linux运维专列

看懂FTP的主动和被动模式

3589
来自专栏vue学习

31、地址新增 — 定义数据结构与获取方式

(1)让我们进入addressEdit.vue页面填写一条地址,ok,现在假设你已经填写完毕。 (2)这个时候我们点击保存按钮且应该为这个按钮添加一个save...

1003
来自专栏任浩强的运维生涯

调用redis的时候二维码不断刷新的排查

一、背景和现象。 项目是PHP开发的,点击登录的时候就根据随机数生成了二维码,缓存在了redis。用户用微信扫描了二维码分析出需要请求的链接,然后微信浏览器就请...

3585
来自专栏机器学习实践二三事

Git使用

上篇博客说到了Git是什么以及搭建基本的Git环境,这篇就说说其基本使用 提交 上一篇写到了,你有个README.txt需要提交 $ git add READM...

2017
来自专栏十月梦想

nodejs+express实现用户登录,注册以及退出操作

先从用户注册说起吧,毕竟注册才能去数据库增加数据,然后在增加校验,本次先从注册===>登录===>退出这个层次顺序说起!接下来看一下用户注册!

1472
来自专栏雨过天晴

原 PHPStrom 9系列激活码

1684
来自专栏云计算教程系列

如何在Ubuntu 16.04上将Redis服务器设置为PHP的会话处理程序

Redis是一个开源键值缓存和存储系统,由于其对多种数据类型(如散列,列表,集合和位图等)的高级支持,也称为数据结构服务器。它还支持群集,使其在高度可用和可扩展...

1193
来自专栏Python、Flask、Django

TP前台调用后台验证方法(跨模块继承控制器)

1193
来自专栏Java技术

使用Redis存储Nginx+Tomcat负载均衡集群的Session

环境:Cent OS 7.0(虚拟机环境)、Nginx 1.9.8、Redis 3.2.1

822

扫码关注云+社区