Appearance
可以,Android 这条链路也可以按“一步一句话”回顾:
代码完成后,先执行
yarn android,进入expo run:android的原生 Android 构建流程。一开始 Expo 找不到 Android SDK,提示
Failed to resolve the Android SDK path。发现本机虽然有 Android Studio,但终端没有正确识别 Android SDK。
检查
~/Library/Android/sdk,确认 SDK 实际目录存在。配置
ANDROID_HOME=/Users/ronnie/Library/Android/sdk,让 Gradle 和 Expo 能找到 SDK。配置
platform-tools到PATH,让终端可以执行adb。执行
adb version,确认 Android Debug Bridge 已经可用。给项目补充
android/local.properties,明确写入本机 SDK 路径。再次执行
yarn android,进入 Gradle 构建阶段。构建时提示找不到 Java Runtime,说明 JDK 环境还没准备好。
安装 JDK 17,因为 React Native / Gradle 构建需要 Java 环境。
执行
java -version,确认 OpenJDK 17 已经可用。执行
/usr/libexec/java_home -v 17,找到 JDK 17 的真实路径。配置
JAVA_HOME,让 Gradle 明确使用 JDK 17。再次执行
yarn android,Gradle 开始下载自身和项目依赖。中途遇到 Maven / Kotlin 依赖下载失败,说明 Gradle 访问远程仓库网络不稳定。
检查并处理代理或 Maven 源问题,让 Gradle 能继续下载依赖。
构建继续后,项目提示缺少 Android NDK。
日志明确要求安装指定版本
NDK 27.0.12077973。发现
sdkmanager命令不可用,说明 Android SDK Command-line Tools 没装或没进 PATH。在 Android Studio 的 SDK Tools 里安装 Android SDK Command-line Tools。
重新检查
sdkmanager --version,确认命令行工具可用。通过 Android Studio 或
sdkmanager安装项目指定的 NDK 版本。检查
$ANDROID_HOME/ndk,确认存在27.0.12077973。再次执行
yarn android,发现还有Invalid https.proxyPort ''警告。搜索代理配置,定位到
android/gradle.properties里有空的 proxy 配置。删除或修正
systemProp.http.proxyPort=、systemProp.https.proxyPort=这些空配置。再次执行
yarn android,Gradle 不再被错误代理配置干扰。Gradle 完成 Android 原生项目编译。
Expo 调用
adb把 debug App 安装到安卓设备或模拟器。App 启动后连接 Metro,Android 开发版应用终于运行起来。
一句话总结:
text
Android 这条路主要是在补齐本机原生开发环境:Android SDK、adb、JDK 17、JAVA_HOME、ANDROID_HOME、Command-line Tools、NDK,以及 Gradle 网络和代理配置。完整链路就是:
text
代码完成 → Expo run:android → Gradle → Android SDK → JDK 17 → adb → NDK → 原生编译 → 安装到设备 → 连接 Metro → Android 运行