React Native项目缺失android文件夹该如何解决?
React Native CLI项目缺失Android目录、无Mac设备的处理方案
补全缺失的Android工程目录
现有项目的JS层业务代码、iOS原生配置都完整,不需要从零重建项目,按以下步骤补全安卓目录即可:
- 先打开项目根目录的
package.json,记录dependencies里react-native对应的精确版本号,后续补全操作必须严格匹配这个版本,否则会出现原生层和JS层不兼容的报错。 - 在任意目录执行命令创建临时RN项目:
npx react-native@<你记录的RN精确版本号> init TempProject --version <你记录的RN精确版本号>,临时项目包名如果能和原有项目保持一致可以减少后续配置修改,记不清原有包名后续再调整即可。 - 临时项目初始化完成后,直接把临时项目根目录下的
android文件夹完整复制到你现有项目的根目录,复制完成后可以直接删掉临时项目文件夹。 - 回到你的项目根目录,执行对应包管理器的install命令(npm/yarn/pnpm都可以,和你项目原本用的包管理器保持一致),完成依赖安装后进入
android目录执行./gradlew clean(Windows系统下执行gradlew.bat clean)清理构建缓存。 - 如果项目中引入过需要原生配置的第三方依赖,对照对应依赖的安卓端配置文档,补全
android/settings.gradle、MainApplication.java、AndroidManifest.xml中的配置项即可,所有JS层的业务代码完全不需要改动。
无Mac设备的调试与验证方案
不需要购置Mac设备就能完成绝大多数开发调试工作:
- 安卓端的开发、调试、打包全流程在Windows/Linux系统下即可完成:安装对应版本的Android Studio,配置好
ANDROID_HOME环境变量,连接开启USB调试的安卓真机,或者直接在Android Studio内创建安卓模拟器,回到项目根目录执行npx react-native run-android即可启动项目,配合Metro服务可以实现热更新调试,和正常RN项目的开发体验完全一致。 - iOS端的验证不需要本地持有Mac设备:如果团队内有成员使用Mac,将补全安卓目录的代码提交到代码仓库,让对方帮忙在ios目录下执行
pod install后启动iOS模拟器做核心流程校验即可,只要不改动原有ios文件夹内的配置,原有iOS端的功能不会受补全安卓目录操作的影响。 - 如果团队没有可用的Mac设备,可以使用正规云测平台的iOS云真机/云构建能力,上传项目的ios目录代码,平台会自动完成项目构建,你可以直接在网页端操作云端的iOS真机完成功能验证,不需要本地配置iOS开发环境。
注意事项
- 补全安卓目录后第一次构建如果报SDK、build-tools版本不匹配的错误,直接按照报错提示在Android Studio的SDK Manager里安装对应版本的组件即可,属于RN安卓构建的常见问题,不需要修改业务代码。
- 不要随意改动现有ios文件夹内的文件,避免破坏原有iOS端的可用配置,后续如果需要调整iOS原生配置,再在有Mac环境的设备上操作即可。
- 如果原有项目配置过应用签名、多渠道打包等安卓端相关能力,补全android文件夹后再重新对应配置即可,不影响现有功能。
内容的提问来源于stack exchange,提问作者NiceGuy2003
相关产品推荐
相关产品推荐

