React Native Android构建失败:依赖与JDK配置问题求助
React Native Android构建失败排查方案
1. 先解决JDK未识别问题(核心前提)
- 验证系统环境变量:
打开全新终端,执行以下命令确认JDK17生效:
确保输出为java -version javac -version17.x.x。若不生效,检查JAVA_HOME是否指向JDK17根目录,PATH是否包含$JAVA_HOME/bin(Mac/Linux)或%JAVA_HOME%\bin(Windows),配置后必须重启终端。 - 给Android Studio指定JDK:
打开项目的Android模块,进入File > Project Structure > SDK Location,在JDK location选择本地安装的JDK17,避免使用默认的Embedded JDK(部分版本与RN兼容性差)。 - 手动配置项目JDK路径:
在项目根目录创建local.properties文件,添加:
替换为实际的JDK17路径,比如Windows下jdk.dir=/path/to/your/jdk-17C:\\Program Files\\Java\\jdk-17.0.9。
2. 修复Gradle依赖解析失败
- 匹配AGP与Gradle版本:
AGP 8.4.0对应Gradle 8.7(官方兼容组合),修改以下文件:- 根目录
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip - 安卓模块
build.gradle(注意不是根目录的):classpath("com.android.tools.build:gradle:8.4.0")
- 根目录
- 确保仓库配置完整:
根目录build.gradle的repositories必须包含:
根目录repositories { google() mavenCentral() }settings.gradle的dependencyResolutionManagement下也要同步配置:
缺失google仓库会直接导致AGP依赖无法解析。dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url "https://jitpack.io" } } } - 清理Gradle缓存:
执行以下命令清理缓存后重新构建:# Mac/Linux ./gradlew clean rm -rf ~/.gradle/caches # Windows gradlew clean rmdir /s /q C:\Users\<你的用户名>\.gradle\caches
3. 排查「重载正常、首次构建失败」的差异
- 重载时RN会复用缓存的构建状态,首次构建是全量拉取依赖,重点检查网络是否能访问google仓库。若网络受限,可在仓库配置中添加国内镜像(比如阿里云maven镜像),但需确保镜像包含对应版本的AGP依赖。
- 检查构建权限:
首次构建时用管理员终端(Windows)或sudo(Mac/Linux)执行构建命令,避免权限不足导致依赖拉取失败。
内容的提问来源于stack exchange,提问作者luckyging3r
相关产品推荐
相关产品推荐

