• 作者:老汪软件技巧
  • 发表时间:2024-09-08 04:01
  • 浏览量:

在 macOS 上为 React Native (RN) 项目初始化 Android 开发环境是一项复杂的任务,涉及到多个工具和依赖的安装与配置。由于这种模式最复杂,许多开发者在这一过程中会遇到很多的坑。本文将分享我在 macOS 上进行 RN Android 开发环境搭建时遇到的常见问题及其解决方案,帮助其他开发者避免踩坑。

重要提示

Mac配置React Native开发环境,其实也没什么好说的,请先严格按照官网进行环境配置,地址:/docs/enviro…,本文重点介绍遇到的坑。

1. adb相关的坑问题 1:adb: command not found

在安装 Android Studio 和相关 SDK 之后,很多开发者发现 adb 等 Android 工具在命令行中无法识别。这通常是因为 Android SDK 的路径没有正确配置到环境变量中。

经验总结:

上图说明识别到模拟器设备,注意:若只有前2行,没有第3行device,说明还是没有识别到任何设备。

问题2: adb devices 显示设备为 unauthorized

当你通过 USB 连接 Android 设备并运行 adb devices 时,设备状态显示为 unauthorized。这通常意味着设备没有正确授权 USB 调试。

问题3: adb connect连接失败

你在运行 Android 项目时遇到的 failed to connect to 192.168.1.3:38431 错误,通常表示设备或模拟器未能与开发服务器成功连接。

解决方案:

2. Android SDK 相关问题问题1:No installed build tools found

在安装 Android Studio 时,有时开发者会跳过某些 SDK 工具的安装,导致运行 npx react-native run-android 时出现 SDK location not found 或 No installed build tools found 的错误。

问题2:error Failed to install the app

在安装 Android Studio 时,会默认安装最新的Android SDK,导致运行 npx react-native run-android 时出现error Failed to install the app. Command failed with exit code 1: ./gradlew app:installDebug -PreactNativeDevServerPort=8081 The me……

解决方案:

其次,请确保已成功打开Android Studio模拟器,执行步骤如下:

成功运行起来如下:

最后执行yarn android命令,才能正常编译andriod项目,并安装在模拟器中,如下:

3. Android Studio模拟器问题问题1:无法启动Android Studio模拟器

启动Android Studio,开发者常常遇到 Unable to launch Pixel Fold API 35 - The emulator process for AVD Pixel_Fold_API_35 has terminated. 错误。

解决方案:

问题2:无法安装Android Studio对应的SDK依赖包

安装Android Studio对应的依赖包,开发者常常遇到错误 requested actions did not complete successfully,Failed packages: - Sources for Android 34 (sources;android-34) - Android SDK Platform 34 (platforms;android-34)

解决方案:

sudo open /Applications/Android\ Studio.app

输入密码后,Android Studio 将以管理员权限运行,然后以root的权限下载对应的SDK,下载完成后,再将对应的sdk复制到用户的目录下

sudo mv /var/root/Library/Android/sdk/ /Users/xxx/Library/Android/sdk/
sudo chown -R $(whoami) /Users/xxx/Library/Android/sdk

上述xxx需要替换你mac的名称

4. Gradle 构建问题问题1:Gradle 守护进程崩溃问题

执行npx react-native run-android,开发者常常遇到错误 FAILURE: Build failed with an exception. * What went wrong: Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

解决方案:

org.gradle.jvmargs=-Xmx2048m

清理 Gradle 缓存和构建

cd android
./gradlew clean
cd ..
npx react-native run-android

修改android/gradle.properties配置

Gradle 版本,确保你的 Gradle 版本和 Android Gradle 插件版本兼容

笔者遇到这个问题,试过网上各种办法,依旧没有解决。

最终解决方案:5. 沙盒环境expo-cli问题1:expo预览问题

若开发者觉得Android Studio复杂,也可选择使用沙箱expo运行预览页面,具体可看RN官网指南,选择简易沙盒环境。安装完成后,执行expo start指令,如何扫描终端中的二维码?

建议:

react-native-cli vs expo-cli 区别总结:

特性react-native-cliexpo-cli

原生代码访问

完全控制,能够自由修改和添加原生模块

受限制,不能直接访问原生代码

第三方原生库支持

完全支持,能够集成任意原生库

仅支持Expo SDK提供的库,集成原生库需eject

打包方式

手动配置签名和构建流程,复杂度较高

提供Expo云打包服务,简单快速

构建速度

较慢,需依赖本地环境的配置和资源

构建速度快,Expo云服务可以快速打包

项目体积

较大,包含完整的iOS和Android原生代码

较小,依赖Expo SDK

适用场景

适合复杂项目或需要使用大量原生功能的项目

适合初学者或无需修改原生代码的简单项目