Windows + Expo + React Native 安卓开发环境搭建教程

我在开发 App 和网站,因为是一个人,所以开发 App 优先选择的跨平台的开发方案,虽然现在 AI 越来越强,跨平台开发和原生开发几乎只是 AI “翻译” 一下的事情,但是经过我多次尝试,还是不能让 AI 生产符合我要求的原生工程,而且考虑到后期维护还需要小修小补需要自己对代码有一定的熟悉,最重要的是 TypeScript 还可以无缝衔接开发网站,所以更加坚定的加入了 RN 阵营。

Expo + React Native 可以开发安卓和 iOS,但是 Windows 下本地只能开发安卓,开发 iOS 必须要有 Mac 或者使用 Expo 云端编译(免费账户只能并发 1 个编译任务,并且每月有编译次数额度)。

安装过程中需要连接外网,请自行解决网络问题。

本教程的版本

  1. Java 21
  2. Node.js 20 + pnpm 10
  3. 模拟器:Pixel 7 + API 36
  4. Expo 54
  5. RN 0.81

版本不要求是最新,但是一定要兼容性最优,最好提前问一问 GPT,后期不会经常遇到奇怪的环境问题。

下载 Android Studio

https://developer.android.com/studio/archive

安装模拟器

Pixel 7 + API 36

创建以后,先手动运行一次模拟器。

如果在过程中下载依赖失败,比如:Gradle 等,下载失败后控制台会打印错误日志,丢给 GPT,分析出需要下载文件的 URL 和下载之后存放在本地的文件位置,手动下载后放到本地的即可

安装 Node.js

https://github.com/nvm-sh/nvm

1
nvm install 20

安装 JDK 21

https://www.oracle.com/java/technologies/javase/jdk21-archive-downloads.html

添加环境变量(自行改成自己的安装目录)

JAVA_HOME:D:\Applications\Java\jdk-21.0.10

添加到 PATH:%JAVA_HOME%\bin

创建 Expo + React Native 项目

https://docs.expo.dev/get-started/create-a-project/

创建项目很简单,一行命令就可以了。

运行项目

安装依赖

1
2
3
pnpm install

expo install

本地编译,生成原生工程,Windows 只会生成 android 的文件夹,如果是 Mac,则会同时生成 android 和 ios 文件夹

1
expo prebuild --clean

运行

1
expo run:android

编译安卓原生工程

生成证书

1
2
3
4
5
6
7
8
9
10
11
12
keytool -genkeypair \
-v \
-keystore my-release-key.jks \
-keyalg RSA \
-keysize 2048 \
-validity 10000 \
-alias my-key-alias

keytool -export -rfc \
-keystore my-release-key.jks \
-alias my-key-alias \
-file upload_certificate.pem

编辑文件 android/app/build.gradle

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
signingConfigs {
release {
storeFile file(MYAPP_UPLOAD_STORE_FILE)
storePassword MYAPP_UPLOAD_STORE_PASSWORD
keyAlias MYAPP_UPLOAD_KEY_ALIAS
keyPassword MYAPP_UPLOAD_KEY_PASSWORD
}
}
buildTypes {
release {
// Caution! In production, you need to generate your own keystore file.
// see https://reactnative.dev/docs/signed-apk-android.
signingConfig signingConfigs.release
}
}

编辑 android/gradle.properties,补充上证书相关的信息

1
2
3
4
MYAPP_UPLOAD_STORE_FILE=
MYAPP_UPLOAD_KEY_ALIAS=
MYAPP_UPLOAD_STORE_PASSWORD=
MYAPP_UPLOAD_KEY_PASSWORD=

编译(生产环境),编译结果文件类型为 .aab

1
cd android && ./gradlew bundleRelease

编译结果的位置:android/app/build/outputs/

发布

https://play.google.com/console

个人认证的 Google Play 账户需要邀请人,并连续测试才能发布正式版,解决办法是可以注册个体户和企业用于申请组织认证,组织认证的账户就没有这个限制了。