构建Android版React Native时出现Bad Gateway及依赖缺失问题求助
解决方案
1. 解决react-native-intercom依赖拉取失败问题
你遇到的首个报错根源是旧版本react-native-intercom内置了已停服的Bintray仓库配置,和你项目自身的构建配置无关,按以下方式处理:
- 优先升级
react-native-intercom到最新稳定版,官方新版本已全面适配Bintray停服后的仓库配置,直接升级即可解决该报错 - 若项目受兼容性限制无法升级版本,可在
android/build.gradle的allprojects -> repositories配置块最顶部,新增Intercom官方新仓库配置,优先级高于其他仓库即可:
allprojects { repositories { // 新增Intercom官方新Maven仓库 maven { url "https://maven.intercom.io/" } // 保留原有其他仓库配置 google() mavenCentral() maven { url "$rootDir/../node_modules/react-native/android" } maven { url "$rootDir/../node_modules/jsc-android/dist" } maven { url "https://www.jitpack.io" } } }
2. 解决yoga、fbjni依赖缺失问题
RN 0.63.4版本的这两个依赖没有上传到MavenCentral,可通过以下两种方案任选其一解决:
- 方案一:在
android/app/build.gradle的dependencies块中,新增强制依赖声明,直接调用RN包内置的对应依赖:
dependencies { // 新增以下两行配置 implementation "com.facebook.yoga:proguard-annotations:1.14.1" implementation "com.facebook.fbjni:fbjni-java-only:0.0.3" // 原有其他依赖保持不变 }
- 方案二:在
allprojects -> repositories配置块中新增Facebook公共Maven仓库,拉取对应版本依赖:
maven { url "https://maven.facebook.com/repository/public/" }
3. 清理缓存重新构建
配置修改完成后执行以下命令清理缓存,避免旧缓存影响构建:
cd android ./gradlew clean cd .. rm -rf node_modules package-lock.json yarn.lock # 重新安装依赖 npm install # 重新运行项目 react-native run-android
内容的提问来源于stack exchange,提问作者DaraJ
相关产品推荐
相关产品推荐

