NET开发者部署React-Native
NET开发者部署React-Native
前情摘要
众所周知,有人说.net可以用Xamrian,呵呵,不习惯收费的好么?搞.Net的人设置一次java的环境变量,可能都觉得实在太麻烦了,可能是因为这些年微软确实把我们给带坏了,所有东西一键安装,简单设置,打开项目直接运行就行了,而要想成功部署android开发环境,那可能需要自己填N个坑,最近FB出的React-Native比较火,哥们在不忍转学java的情况下,,虽然java不是anroid,但兄弟我还是决定用React-Native来实现自己的android梦,于是开始了数日的填坑运动,当然兄弟们不要像我学习,我是一边工作,一边填坑的,有一下没一下的,但是最后还是顺利部署上了。
特别鸣谢
首先,我得说,我开始填坑也是站在巨人的肩膀上的,所以以下几位的文档我是经过仔细阅读的,虽然到后来填坑时,很多细节都忘了,但是还得回来再看过啊,大家在看的随笔时,如果发现有的东西只是说了下,那很有可能他们几位说的已经比较详细了,我当然不表述了。所以结合起来看最好。
http://bluereader.org/article/82281734(这篇也不错)
http://my.oschina.net/jackzlz/blog/508210?fromerr=5Hyi3aQ4(有帮助)
还有一个qq群帮助我比较大,其中有高手愿意指点新人,同时有好多新人愿意相互交流,为免大家说我做广告,可以私信索取
正式填坑
你如果看了上边几个链接的文档相信知道了一个基本步骤:
安装JDK
- 安装Android SDK
- 安装node.js
- 安装react-native命令行工具
- 创建项目
- 运行packager
- 运行模拟器
- 安卓运行
我列的这几个步骤可能与上边参考的几位阿牛的有区别,其实有些环节可以暂时不操作,对于我们新手来说,第一眼想看到的不就是程序正常跑起来么。
1、安装JDK
这个大家都知道怎么下载,但也有少数人不知道,我啰嗦下:
下载链接:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
有 8u65或8u66,我下的后者,这个我到觉得无所谓,自己根据喜好下吧。下来之后就是安装了,在windows下安装应该没有问题,安装完之后要配置环境变量,这是JDK的第一大特性(个人观点),咋就不能安装时程序设置呢,非得手动配?你看看人家Node,自己安装完也就设好了。
配置JDK
按上图的步骤,此电脑上右击,然后按后边的步骤就可以了,在环境变量中添加JAVA_HOME的变量与值,并将其添加到Path中,我用的是win10,其它windows操作系统类似,mac自行绕开,这个大家如果不清楚细节,直接百度就行了。如果设置成功,你在cmd中输入java,那肯定会正确的响应,所以设置完后检查下看这步有没有问题,否则等到了后边之后,你会发现坑根本不知道是在哪挖下的,那你怎么填?
2、安装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)
Android 6.0 (API 23)/SDK Platform (1)
Extras/Android Support Library(23.0.1)
推荐使用腾讯Bugly的镜像加速下载。查看说明
推荐将SDK的platform-tools子目录加入系统PATH环境变量。
我总结下我的经验,我是先安装的SDK manager,然后让其安装SDK的,如下图:
然后这货就会经常给你显示个Failed了,或者长时间进度条保持不变,速度很慢,时间很长,我起初就让他自己下去呗,我用的是虚拟机,反正不影响我正常工作,它爱什么时候下完什么下完,所以经常下班了,它还在下,干脆不关机,你下你的,后来有几个没装上也不在乎了,(此处有坑),打开SDK manager后你就会看到哪些装了哪些没装,显示installed的即是装了,哪几个 要装建议参照上边的说明。我用这个装的时候buildtool的23.0.1死活装不上,最后所以老出错,下边有说。
安装完之后,记得配置ANDROID_HOME环境变量,是Android SDK Tools的安装目录,这个你在安装的时候注意看下,然后在path中要添加两条,%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools,
这个建议大家设置,否则后边会出错,我当时是没有设的,因为有一个帖子中说最好设上,也就是可以不设,结果自己给自己挖了个坑。安装完之后如果正常,你在命令行输入android,就能直接打开SDK manager,这也算是验证你的android环境搭建好了没。
3、安装node.js
这个是最没有坑的一个,下载其它东西的时候捎带下载了node.js,然后安装了下,而且这货自己设置环境变量,省去我们不少事,此处给node点个赞,程序在安装时我记得有选项,选上就可以了,你装完之后,在环境变量中就能看到下面的东西了。
4、安装react-native命令行工具
如果前边正常的话,这块应该是比较容易的,照着教程输入下边的命令:
npm install -g react-native-cli
如果你出现上边的效果,说明它在工作,这应该是正常的。至于以上大牛们帖子中说的bug,我是没有遇到的,说明在新版本中已经修复这个问题了。
5、创建项目
输入下边的命令:
react-native init reactNative
这个命令前边两具是命令后边这个reactNative是目录名,你自己命名就行,我一开始以为必须是这个名字,郁闷了好半天,后来才发现这就是名字。

接下来输入下边的命令:
react-native run-android
我当时是出错了的,如下图:

提示是缺少Build Tools 23.0.1,这就是前边采用SDK manager时挖下的坑,所以建议大家前边有问题时解决了再往后走,我是如何解决的呢,我火冒三丈的时候,下载了Android Studio,记得大牛们说,推荐下载这个,可是我没有听,用SDK manager在那里狠费劲,最后还得装上。这里需要提醒下各位,下载这个的目的是补全前边缺少的Build Tools,大家如果也采用了两种方式来安装的话,一定要注意将下载下来的SDK放在同一个目录中,也就是要与环境变量设置中的位置一致,默认的应该是如下图类似的位置,和SDK manager设置的路径不同,所以如果你采用两种方式补全的话,你就把这个目录下的复制到同一个目录中,我是复制这里到SDK manager的,原因是我前边都设置了环境变量了啊。
所以如果是第一次安装的兄弟姐妹们,就不要采用SDK manager了,速度比较慢,当然这是个人观点,您仅供参考啊!
上边的问题解决后,就可以运行packager了
6、运行packager
react-native start


上边就是正常运行后的状态,一开始我等着结束呢,后来它就一直保持这个状态,我以为卡住了,其实它是正在运行,这里吐槽下,你就不能给个正在运行的提示啊,害的我担心好半天,随后我们需要安装模拟器或连真机。
说明下,如果用真机,android 5.0以下的话要和电脑网络相通,注意是网络,不是插了USB线就行了,我在此处转过好几圈,最后还是群里的高手说的,我才明白了。不过我说明下,我是在虚拟机中装的环境,所以用模拟器调试的,否则手机如何与虚拟机网络相通还是个问题,谁要是解决了告诉我一声,不过无论是模拟器还是真机,都是要装驱动的,我为了图省事,我直接装了豌豆夹,让这货帮忙装了下驱动,呵呵,此处应该有掌声,你们要是嫌装驱动麻烦,你们也可以这样做。
7、运行模拟器
模拟器大家就下载大牛们推荐的BlueStacks,挺好用的。你连接好虚拟机或者真机也好,在cmd中输入adb devices就可以查看了。如果有东西说明连接正常,没有你就再检查检查看是不是没连接上。
8.安卓运行
设备连接正常之后,就可以运行我们的程序了,注意不要关掉上边说的packeger窗口,用另一个CMD运行下边的命令:
react-native run-android
这里本来是我们最应该激动的时候,但是往往这个时候都是要出错的,我的也不例外,显示了一个红色窗口,如下图:

不要惊慌,不要紧张,最起码我们都看到界面了啊,下面的设置本来是可以参考第一篇老大的文章的,那就是设置IP与端口,只是老大没有贴图,同时也说是局域网地址,我一直以为是和搭建环境的电脑处于同一个网段就行,其实是要设置成电脑的IP,并加上端口,如下图,然后确定再返回就行了,然后再重新rload js就应该正常了。设置的菜单真机点菜单按键即可,模拟器的点下图所示的位置就能出来,然后选那个dev settings.
再然后:选下边的debug server host for device这一项。
然后就是这里了:
设置完之后确定返回再重新加载,激动人心的时刻才真正到来了:
总结
程序员都有一颗强大的心是有道理的,光这个东西我调试了好几天,都没有打败我,最后我还是让它出来了,所以为所有的搞开发的程序员们鼓掌。
当然,由于历时几天,同时内容实在比较多,又得调试bug,还得截图给大家准备写心得,所以有的地方写的很乱,同时也有不全面的地方,大家如果有疑问,留言或qq都可以。咱们接着聊。声明一下,截图有的是网上的,有的是群里直接拿过来了,只是为了符合场景,如果大家觉得我盗了你的图,提出来,我再想办法截我的图,毕竟有的错误还原一回也不容易了
qq:174566696
NET开发者部署React-Native的更多相关文章
- 一个资深iOS开发者对于React Native的看法
一个资深iOS开发者对于React Native的看法 当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道. 我认为一个js开发者可以使用javasc ...
- 写给移动开发者的 React Native 指南
本文原创版权归 简书 wingjay 所有,如有转载,请于文章篇头位置显示标注原创作者及出处,以示尊重! 作者:wingjay 出处:http://www.jianshu.com/p/b8894425 ...
- [转] 一个资深iOS开发者对于React Native的看法
当我第一次尝试ReactNative的时候,我觉得这只是网页开发者涉足原生移动应用领域的歪门邪道. 我认为一个js开发者可以使用javascript来构建iPhone应用确实是一件很酷的事情,但是我很 ...
- iOS 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- 写给iOS开发者的React Native学习路线(转)
我是一名iOS开发者,断断续续一年前开始接触React Native,最近由于工作需要,专职学习React Native也有一个多月了.网络上知识资源非常的多,但能让人豁然开朗.迅速学习的还是少数,我 ...
- 给所有开发者的React Native详细入门指南
建议先下载好资料后,再阅读本文.demo代码和资料下载 目录 一.前言 二.回答一些问题 1.为什么写此教程 2.本文适合哪些人看 3.如何使用本教程 4.需要先学习JavaScript.HTML.C ...
- React Native调试实用技巧,React Native开发者必会的调试技巧
在做React Native开发时,少不了的需要对React Native程序进行调试.调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率.本文将向大家分享React Na ...
- 使用React Native来撰写跨平台的App
React Native 是一个 JavaScript 的框架,用来撰写实时的.可原生呈现 iOS 和 Android 的应用.其是基于 React的,而 React 是 Facebook 的用于构建 ...
- iOS程序员的React Native开发工具集
本文整理了React Native iOS开发过程中有用的工具.服务.测试.库以及网站等. 工具 你可以选择不同的开发环境:DECO.EXPO或者你可以使用Nuclide+Atom,目前我使用EXPO ...
- React Native调试心得
在做React Native开发时,少不了的需要对React Native程序进行调试.调试程序是每一位开发者的基本功,高效的调试不仅能提高开发效率,也能降低Bug率.本文将向大家分享React Na ...
随机推荐
- BZOJ 3112 Zjoi2013 防守战线 单纯形
题目大意: 单纯形*2.. . #include <cmath> #include <cstdio> #include <cstring> #include < ...
- Redis集群_3.redis主从自动切换Sentinel(转)
Redis SentinelSentinel(哨兵)是用于监控redis集群中Master状态的工具,其已经被集成在redis2.4+的版本中 一.Sentinel作用:1):Master状态检测 2 ...
- hdu3804(树链剖分)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3804 题意:给定一棵n个结点的树及边权,回答m个询问(x,y)满足以下条件的边权: 1)该边在结点1~ ...
- Oracle 最简单的随系统自己主动启动
Oracle 最简单的随系统自己主动启动 俗话说用户是上帝,他们有时候提出一个问题很的简单,就仅仅须要一句话,一分钟就完事了.可是拿到我们DBA来说,可能至少得半个小时甚至半个月才干满足他的一句话.有 ...
- [Oracle] - 性能优化工具(4) - AWRDD
AWRDD是用于比較两个AWR快照,从而获得不同一时候期的性能. 运行例如以下语句获得AWRDD: @?/rdbms/admin/awrddrpt.sql 2025 23 2月 2014 07:12 ...
- java中的特殊字符集合
JAVA中转义字符: 1.八进制转义序列:\ + 1到3位5数字:范围'\000'~'\377' \0:空字符 2.Unicode转义字符:\u + 四个 十六进制数字:0~65535 ...
- 泛泰A850 (高通8064+720p)刷4.4专用中文recovery TWRP2.7.1.3版
欢迎关注泛泰非盈利专业第三方开发团队 VegaDevTeam (本team 由 syhost suky zhaochengw(z大) xuefy(大星星) tenfar(R大师) loogeo cr ...
- a标签的背景图在ie8下不显示的问题
突然发现临下班时候问题就多, 马上下班了被头头告知线上已经上线很久的活动现在有个兼容性问题, a标签的背景图在ie8下会有不显示的情况. 我自己找了台ie8的机器实验了一下, 发现一切正常, 但是在另 ...
- ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件
原文:ASP.NET关于Login控件使用,LoginView 控件,CreateUserWizard 控件 Login控件它是属于Membership服务的一部分,必须配置Membership提供程 ...
- SSH协议详解(转)
转发的http://blog.csdn.net/macrossdzh/article/details/5691924 很透彻啊,学习了 一.什么是SSH SSH是英文Secure Shell的简写形式 ...