本文前提是假定你会使用 React。
环境搭建分为以下几个步骤:
- 安装 react 基础环境
- 安装 Android Studio
- 安装 Java SE Development Kit (JDK)
- 添加系统环境变量
- 修改默认的 .gradle 下载源
示例运行分为以下几个步骤:
- 安装 react-native
- 创建一个项目
- 开启真机USB调试
- 开始项目调试
第1步:安装 react 基础环境
-
nodejs:版本要求 14+
-
npx:为了 npm 安装包速度,可以选择切换到淘宝源,当然不切换也是可以的
npx nrm use taobao //若想切换回默认的 npm 源,请执行 npx nrm use npm
-
yarn:建议安装 yarn
第2步:安装 Android Studio
官网下载安装包:
https://developer.android.com/studio/
如果打不开官网,则自己在国内下载网站找安装包
注意:安装过程中,一定记得自己所选的安装目录。
例如我选择的安装目录为:D:\Program Files\Android
安装完成后,该目录下会有 2 个目录:Android Studio、Sdk
使用 React-Native 之所以需要安装 Android Studio 就是因为我们需要这个 Sdk 目录,至于 Android Studio 这个工具,我们可以选择忽略它,不使用它。
第3步:安装 Java SE Development Kit (JDK)
官网下载安装包:
https://adoptium.net/zh-CN/temurin/releases/?version=11
JDK 版本为 11
第4步:添加系统环境变量
打开系统环境变量窗口
此电脑 > 右键 > 属性 > 高级系统设置 > 环境变量
假设我刚才将 Android Studio 安装到了 D:\Program Files\Android
在系统变量中,新建 并添加下面的内容:
变量名:ANDROID_SDK_ROOT
变量值:D:\Program Files\Android\Sdk
点中 Path > 编辑
,依次加入下面路径内容
- %ANDROID_SDK_ROOT%\platform-tools
- %ANDROID_SDK_ROOT%\emulator
- %ANDROID_SDK_ROOT%\tools
- %ANDROID_SDK_ROOT%\tools\bin
当然你也可以不选择添加 ANDROID_SDK_ROOT 变量,而是在 Path 中直接写固定路径:
1. D:\Program Files\Android\platform-tools
2. D:\Program Files\Android\emulator
3. D:\Program Files\Android\tools
4. D:\Program Files\Android\tools\bin
第5步:修改默认的 .gradle 下载源
打开当前系统用户的 .gradle
目录
例如假设当前用户为 administrator,那么打开 C:\Users\Administrator,在里面找到 .gradle 目录。
然后在该目录下创建一个名为 init.gradle
的文件,内容为:
allprojects{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/central/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
url 'https://maven.aliyun.com/repository/google/'
url 'https://maven.aliyun.com/repository/gradle-plugin/'
}
}
buildscript{
repositories {
def ALIYUN_REPOSITORY_URL = 'https://maven.aliyun.com/repository/central/'
def ALIYUN_JCENTER_URL = 'https://maven.aliyun.com/repository/public/'
all { ArtifactRepository repo ->
if(repo instanceof MavenArtifactRepository){
def url = repo.url.toString()
if (url.startsWith('https://repo1.maven.org/maven2') || url.startsWith('http://repo1.maven.org/maven2')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_REPOSITORY_URL."
remove repo
}
if (url.startsWith('https://jcenter.bintray.com/') || url.startsWith('http://jcenter.bintray.com/')) {
project.logger.lifecycle "Repository ${repo.url} replaced by $ALIYUN_JCENTER_URL."
remove repo
}
}
}
maven {
url ALIYUN_REPOSITORY_URL
url ALIYUN_JCENTER_URL
url 'https://maven.aliyun.com/repository/google/'
url 'https://maven.aliyun.com/repository/gradle-plugin/'
}
}
}
}
为什么要添加 init.gradle
文件?
由于第一次编译 react-native 时需要联网下载一些第三方 .jar 包,例如会下载 fastutil-8.4.0.jar、kotlin-compiler-embeddable-1.6.10.jar 这两个文件的默认下载源相当的慢,半个小时未必能够下载完成,哪怕你开了代理也是非常慢。
所以需要将默认的国外源修改为 阿里云 提供的下载源。
请注意这里下载的是 .jar 文件,不是 npm 包,所以跟修不修改 npm 源无关。
至此,安装运行 react-native 环境已经配置好了。
第1步:安装 react-native
全局安装 react-native
yarn global add react-native
特别说明:很早之前还需要安装 react-native-cli,但是这个早都废弃,目前根本不需要安装它,因为它已经内置到 react-native 中了。
第2步:创建一个项目
特别强调:对于 react-native 项目目录名
- 不要包含中文
- 不可以使用大写
- 不可以使用 中划线
-
或其他特殊字符 - 只允许使用小写字母+数字
假设我们在 E盘创建了一个 react-native 的目录,我们先需要进入该目录
cd e:/react-native
假设我们要创建一个名为 test 的 react-native 项目,那么执行:
npx react-native init test
如果你想使用 TypeScript,那么可以添加参数:
npx react-native init test --template react-native-template-typescript
安装完成后,我们用 VSCode 打开这个项目,就会看到默认的 react-native 文件目录结构。
我们先不做任何修改。
哪怕里面可能会有 eslint 警告信息
第3步:开启真机USB调试
用 USB 数据线连接手机,并打开手机的 USB 调试。
不同型号手机开启 USB 调试模式的方式各不相同,这里不做过多讲述
一定要打开
USB 调试
中的USB 安装
一切准备就绪,那么开始真机调试。
第4步:开始项目调试
打开项目的 package.json 文件,可以看到:
"scripts": {
"android": "react-native run-android",
"ios": "react-native run-ios",
"start": "react-native start",
"test": "jest",
"lint": "eslint ."
},
react-native 默认会启用 8081 端口,如果这个端口被占用,或想启用其他端口,则可以通过下面方式修改:
"android": "react-native run-android --port 8088",
由于我是安卓手机,那么我在命令面板中执行:
yarn android
接下来如果一切顺利,就会将默认的 react-native 示例打包成 安卓应用,并在手机上进行安装。
我这边第一次看到手机上成功运行,内心是非常激动的,感觉打开了一个神奇大门。
特别补充:
- 如果是第一次执行,因为要下载一些第三方 .jar 所以会慢一些,不过好在我们之前配置过
init.gradle
,所以下载速度应该还比较快 - 在 USB 调试期间一定保持 手机不要处于 锁屏状态
- 我的小米手机可以正常调试安装,但是在 鸿蒙 手机中由于安全性过高,不允许安装签名异常的 安卓应用,所以会出现无法安装的情况。
至此,react-native 从安装到运行的流程已经讲解完毕。
那么接下来,就该是慢慢的逐渐去学习 react-native 各个 API 和一些第三方 相关 npm 包了。