前言:重要的事情放在最前面,RN开发环境对版本要求比较高,所有环境严格按照指定版本安装,版本不一致无法正常进行
各个环境的搭建遵循三步曲:
官网传送带:Download Python | Python.org
安装步骤:傻瓜式next,只是在安装路径部分按个人习惯进行更改(但是路径需要记住,后面配置环境会用到)
接下来就是一直next知道安装结束!
进入电脑高级配置
新建环境变量PYTHON_HOME
输入python命令,看到如下界面说明成功啦!
官网传送带:Java Downloads | Oracle
这里不建议更改安装路径,记录下这个环境路径:C:\Program Files\Java\jdk1.8.0_151
继续安装jre , 注意:jdk和jre安装在同一目录下
分别输入java和javac,看到如下界面,说明配置成功了!
官网传送带:AndroidDevTools - Android开发工具 Android SDK下载 Android Studio下载 Gradle下载 SDK Tools下载
拷贝SDK(Android运行环境)到Android目录下,解压
命令行窗口中键入 adb devices
这里我要说明一下,我试过了很多方式都不成功,试过Genymotion,与夜神模拟器,连接成功,但是在模拟器上就是跑不起来,由于时间有限,折腾了好久都不行,暂时先跳过这一步,先用真机调试吧!
1.rn脚手架准备
首先要创建rn项目,那么ReactNative脚手架是必不可少的,由于版本限制的原因,所以接下来的操作需要nodeV12.10.0版本支持(如果不用,启动项目的时候会出错,下文又提及),没有nodev12.10.0版本的小伙伴建议下载nvm进行node管理,这样非常方便node的版本切换
npm install -g yarn react-native-cli
2.创建rn项目(注意:项目名不能有中文路径)
- react-native init 项目名 --version 0.55.4 (要求必须跟上版本号)
-
- 例如:react-native init rn_demo --version 0.55.4
等待下载完毕即可...
3.启动手机(或者手机模拟器)
由于我这里使用的是手机,所以接下演示说明的以真机为准
注意:电脑连接手机后,手机必须是调试模式/开发这模式,可以在中断执行命令adb devices,显示只要有一个设备即可
4.启动项目
进入项目根目录,执行命令:react-native run-android,如果一切顺利的话,那么你就会在手机端看到如下画面,那就大功告成啦!(假设不成功的话,那么可以继续看下文,说说我遇到的问题与如何解决的)
5.常用命令总结:
- //使用12版本的node
- nvm use v12.10.0
-
- //安装react-native脚手架
- npm install -g yarn react-native-cli
-
- //检测react-native是否安装成功
- react-native -v
-
- //创建rn项目
- react-native init 项目名 --version 0.55.4 (要求必须跟上版本号)
- 例如:react-native init rn_demo --version 0.55.4
-
- //启动项目
- react-native run-android
-
- //终端查看是否链接设备
- adb devices
在我配置好环境之后,启动项目之后,看到的并不是上图,而是下图:
具体报错信息是:Unable to load script.Make sure you're either running a metro server( run 'react-native start' ) or that your bundle 'index.android.bundle' is packaged correctly for server.
这句话的翻译过来大致是:无法从资产的index.android.bundle中加载脚本。确保你的包被正确打包或者你正在运行一个packager服务器,原因即是index.android.bundle 这个文件是不存在(我搜了一下我的文件,确实不存在这个文件)
看了网上很多帖子,基本操作都是:
step1:打开自己的项目文件夹,在Android/app/src/main目录下创建一个空的assets文件夹,
step2:用dos进入项目根目录,也就是执行下面代码:
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
然而并没有那么顺利,又报错了,说找不到我的index.android.js文件,所以这里向小伙伴们提个醒,可以在项目根目录下,查看你是否有这个文件,其实也是项目的入口文件,只是不同版本下命名不一样,我这里式index.js,所以我将上面的命令改变:
正确执行下方命令:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
这时候你就可以看到刚才新建的assets文件下多了两个文件,则说明成功了:
异常描述:
- error Invalid regular expression: /(.*\\__fixtures__\\.*|node_modules[\\\]react[
- \\\]dist[\\\].*|website\\node_modules\\.*|heapCapture\\bundle\.js|.*\\__tests__\
- \.*)$/: Unterminated character class
看了网上的帖子,说是node版本照成的,一开始我用的是node14,后面换回12,就解决了这个问题,这也是我为什么在前文提及一定要用node12的版本。
在项目根目录下执行如下命令可以解决:
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res