native react学习记录(一)运行环境的安装
开发环境windows+Android
一、安装依赖项
需要Node,React Native命令行界面,Python2,JDK和Android Studio
可以使用Chocolatewindows包管理工具安装
安装Chocolatey:
使用管理员权限运行cmd并输入:(参考chocolatey安装)
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
在命令行输入 验证Chocolatey已经安装成功:
choco choco -?
使用choco安装node,python2,jdk,或者直接手动下载并安装。
choco install -y nodejs.install python2 jdk8
nodejs下载路径:https://nodejs.org/en/download/
可以通过node -v的命令来测试NodeJS是否安装成功
python2.7下载路径:https://www.python.org/downloads/release/python-2713/
如果安装了python3的话,注意吧python3中的python.exe 和pythonw分别改为python3.exe和pythonw3.exe
jdk8下载路径:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
如果手动安装的话,请自行配置JAVA_HOME的环境变量H:\Java\jdk1.8.0_172
Node附带npm,允许您安装React Native命令行界面。在使用npm之前需要重新以管理员身份开启cmd,以使得node可以使用。
使用国内镜像加速npm和yarn
- npm config set registry=https://registry.npm.taobao.org
在命令提示符或shell中运行以下命令:
npm install -g react-native-cli
配置Android开发环境:
1.下载并安装Android Studio
在提示选择安装类型时,选择“自定义”设置。确保选中以下所有框旁边的框:
Android SDKAndroid SDK PlatformPerformance (Intel ® HAXM)Android Virtual Device
2、安装Android SDK
Android Studio默认安装最新的Android SDK。但是,使用本机代码构建React Native应用程序Android 6.0 (Marshmallow)尤其需要SDK。可以通过Android Studio中的SDK Manager安装其他Android SDK。
可以从“欢迎使用Android Studio”屏幕访问SDK Manager。单击“配置”,然后选择“SDK Manager”。

从SDK Manager中选择“SDK平台”选项卡,然后选中右下角“显示包详细信息”旁边的框。查找并展开Android 6.0 (Marshmallow)条目,然后确保检查以下所有项:
Google APIsAndroid SDK Platform 23Intel x86 Atom_64 System ImageGoogle APIs Intel x86 Atom_64 System Image
接下来,选择“SDK工具”选项卡,然后选中“显示包详细信息”旁边的框。查找并展开“Android SDK Build-Tools”条目,然后确保23.0.1选中该条目。
最后,单击“应用”以下载并安装Android SDK和相关的构建工具。
3.配置ANDROID_HOME环境变量
React Native工具需要设置一些环境变量才能使用本机代码构建应用程序。
win10电脑右击选择“属性”,选择“高级系统设置”--“环境变量”---“新建”ANDROID_HOME指向新的环境变量:
c:\Users\YOUR_USERNAME\AppData\Local\Android\Sdk在path中分别输入:
同时
%ANDROID_HOME%\tools
%ANDROID_HOME%\platform-tools
4、打开新的cmd,以便使得环境变量的配置生效,输入"adb“检查上面配置是否生效。
创建新的应用程序
react-native init AwesomeProject
提示安装yarn,
国内由于npm安装第三方包很慢,所以更换淘宝镜像
使用国内镜像加速npm和yarn
- npm config set registry=https://registry.npm.taobao.org
- yarn config set registry https://registry.npm.taobao.org
- 下载cnpm:npm install -g cnpm –registry=https://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org
这样就可以使用 cnpm 来安装包了
cnpm install -g yarn
准备Android设备
使用虚拟物理设备
如果您刚刚安装了Android Studio,将刚刚创建的AwesomeProject导入Android Studio中,创建新的AVD,找到手机图标,选择穿件虚拟设备,选择任意手机设备,单击下一步:

选择“x86 Images”选项卡,然后查找带有Android 6.0(Google API)目标的Marshmallow API Level 23,x86_64 ABI图像。

如果您没有安装HAXM,请单击“安装HAXM”或按照这些说明进行设置,然后返回AVD Manager。

单击“下一步”,然后单击“完成”以创建AVD。此时,您应该可以单击AVD旁边的绿色三角形按钮启动它,然后继续下一步。
如果没有启动检查是否有足够的空间。
运行React Native应用程序
cd AwesomeProject react-native run-android
第一次会出现:
Downloading https://services.gradle.org/distributions/gradle-3.5.1-all.zip
可以手工下载gradle-3.5.1-all.zip,百度网盘:
https://pan.baidu.com/s/1qYKCPZm,提取码:h1e2
把下载下来的文件放到:
C:\Users\<your username>\.gradle\wrapper\dists\gradle-3.5.1-all\42vjebfdws9pjts3l4bouoq0p,42vjebfdws9pjts3l4bouoq0p名字不固定
有可能出现:NDK is missing a "platforms" directory
解决方法:
到此点击打开链接下载对应版本,下载完毕后将其解压,将其内部的所有文件全部移动至新建的ndk-build文件夹下,重启Android Studio,问题解决。
C:\Users\《your username》\AppData\Local\Android\Sdk\ndk-bundle
再次发现error:
error: bundling failed: Error: Unable to resolve module `AccessibilityInfo` from `H:\AwesomeProject\node_modules\react-native\Libraries\react-native\react-native-implementation.js`: Module `AccessibilityInfo` does not exist in the Haste module map
解决方法:
This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
没有安装watchman的话:下载最新的watchman.zip,并在watchman.exe的目录下运行,注意下属命令应该在项目路径AwesomeProject文件夹下执行:
1. Clear watchman watches: `watchman watch-del-all`.
2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
3. Reset Metro Bundler cache: `rm -rf /tmp/metro-bundler-cache-*` or `npm start -- --reset-cache`.
4. Remove haste cache: `rm -rf /tmp/haste-map-react-native-packager-*`.
Unable to resolve module AccessibilityInfo from XXX
android启动后大红屏错误, 具体信息是这个
Unable to resolve module `AccessibilityInfo` from `xxx\node_modules\react-native\Libraries\
react-native\react-native-implementation.js`: Module does not exist in the module map
This might be related to https://github.com/facebook/react-native/issues/4968
To resolve try the following:
1. Clear watchman watches: `watchman watch-del-all`.
2. Delete the `node_modules` folder: `rm -rf node_modules && npm install`.
3. Reset Metro Bundler cache: `rm -rf $TMPDIR/react-*` or `npm start -- --reset-cache`.
4. Remove haste cache: `rm -rf $TMPDIR/haste-map-react-native-packager-*`.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
按照报错信息中的四个方法都没有解决此问题, 后来在github的问题讨论中找到了一条不起眼的答案.
按照上面教程走下来后安装的是最新的ReactNative(现在是0.56), 这个问题可能是新版本的bug, 降级到0.55即可.
降级流程:
1. 在工程目录下执行 E:\ReactNative\Test>npm install --save react-native@0.55.4;
2. 然后 E:\ReactNative\Test>react-native upgrade, 这里会提示你要不要覆盖原来的部分文件, 我是一路y, 最后提示 Successfully upgraded this project to react-native v0.55.4;
3. 接下来再运行, 提示一个android目录下build错误, 我猜应该是build旧文件的错误, 所以删掉了android目录下的几个build文件夹;
4. 又有问题( 如果没有这么多问题就跳过这些步骤 ): MainApplication 内找不到 BuildConfig ,代码问题好办, 用AS打开, import BuildConfig 就可以了.
另外, Unable to resolve module react-navigation from 可以用 npm install react-navigation@https://github.com/react-community/react-navigation.git --save 解决.
至此, mission complete, 来到下一个问题(手动滑稽)
Module build failed: Error: Plugin 0 specified in “base” … provided an invalid property of “default”
也是个大红屏错误, 是在babel-preset-react-native包里的文件错误, 看了下那个文件, 没有几行代码.
最后在 https://github.com/facebook/react-native/issues/15545 的回答中找到适合我的方法.
执行 npm install --save-dev babel-preset-react-native@2.1.0 后再次运行即可, 终于看到梦寐以求的界面了
如何同时运行两个RN项目
我们知道, 有时候运行项目时会报错 8081端口被占用, 一般都是因为启动过一个项目的原因, 在任务管理器中杀掉node.js即可.
但如果我们不想杀掉它呢, 我就是想同时跑两个项目, 这也是可以的, 在这个文件中可以配置
在service.js的61行( 可能不同的版本不一样 )处修改8081为想要的其他端口即可, 注意手机上也要重新配置端口
浙公网安备 33010602011771号