- 作者:老汪软件技巧
- 发表时间: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
适用场景
适合复杂项目或需要使用大量原生功能的项目
适合初学者或无需修改原生代码的简单项目