本地构建android React Native Epro项目失败:Execution failed for task ‘:react-native-svg:compileDebugJavaWithJ
这是硬性要求,不能绕过。清理是万能药,尤其换 JDK 后。React Native 项目升级 SDK 前,先查RN 官方升级指南。是排查神器。
·
- 问题描述
- 错误日志
- 原因分析
- 解决方案(分步操作)
- 验证方式
- 经验总结
- 兼容性表格
问题背景
最近在升级 React Native 项目时,尝试将 compileSdkVersion 升级到 Android 36(API 36 / Android 16),结果编译直接爆炸:
Execution failed for task ':react-native-svg:compileDebugJavaWithJavac'.
> Could not resolve all files for configuration ':react-native-svg:androidJdkImage'.
> Failed to transform core-for-system-modules.jar ...
> Execution failed for JdkImageTransform: ...android-36\core-for-system-modules.jar
> Error while executing process D:\jdk17\jdk\bin\jlink.exe ...
关键报错点:
android-36/core-for-system-modules.jarjlink.exe(来自 JDK 17)
问题复现
// android/app/build.gradle
android {
compileSdkVersion 36
targetSdkVersion 36
}
使用 JDK 17 编译 → 直接失败!
根本原因分析
| 组件 | 问题 |
|---|---|
| Android 36 | 引入了 系统模块化,core-for-system-modules.jar 是 JMOD 格式 |
JDK 17 的 jlink |
不认识 Android 36 的新模块结构 → JdkImageTransform 崩溃 |
| AGP(Android Gradle Plugin) | 8.5+ 才正式支持 SDK 36 |
官方结论:
SDK 36 必须搭配 JDK 21+
来源:Android 16 发布说明
解决方案(亲测 100% 有效)
步骤 1:升级 JDK 到 21
-
下载 Temurin JDK 21(推荐)
→ https://adoptium.net/temurin/releases/?version=21 -
安装到
D:\jdk-21 -
设置环境变量(Windows):
setx JAVA_HOME "D:\jdk-21" setx PATH "%JAVA_HOME%\bin;%PATH%"或者直接在android项目里面指定JDK,就不用改环境变量了,可能其他项目不能用JDK21,改环境变量会产生全局影响。
在android目录下的gradle.properties中指定JDK,如下:
- 验证:
java -version # 输出:openjdk version "21.x.x"
步骤 2:升级 AGP + Gradle
android/build.gradle
buildscript {
dependencies {
classpath 'com.android.tools.build:gradle:8.6.0' // 必须 ≥8.5
}
}
gradle/wrapper/gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-all.zip
步骤 3:配置 Android Studio 使用 JDK 21
- 打开 Android Studio
File → Project Structure → SDK Location- Gradle JDK 选择 JDK 21
- 或在
gradle.properties添加:org.gradle.java.home=D:/jdk-21
步骤 4:安装 SDK 36 平台
- 打开 SDK Manager
- 勾选:
- Android SDK Platform 36
- Android SDK Build-Tools 36.0.0
步骤 5:清理缓存 + 重新编译
# 删除 Gradle 缓存(关键!)
rmdir /s "%USERPROFILE%\.gradle\caches"
# 清理项目
cd android
.\gradlew clean
cd ..
# 重新编译
npx react-native run-android
成功! 编译通过,react-native-svg、slider 等库全部正常。
验证构建成功
.\gradlew :app:properties | findstr compileSdk
# 输出:compileSdkVersion: 36
APK 安装到 Android 16 模拟器,运行正常。
兼容性对照表(建议收藏)
| 组件 | 必须版本 |
|---|---|
| compileSdk / targetSdk | 36 |
| JDK | 21+(推荐 21.0.3) |
| AGP | 8.6.0+(8.5 起步) |
| Gradle Wrapper | 8.14.3+ |
| Build-Tools | 36.0.0 |
| React Native | ≥ 0.74(推荐 0.75+) |
常见错误 & 一句话修复
| 错误 | 修复 |
|---|---|
JdkImageTransform 失败 |
换 JDK 21 |
Failed to find Build Tools 36 |
安装 Build-Tools 36 |
AGP not compatible with SDK 36 |
升级 AGP 到 8.6+ |
经验总结
- SDK 36 = JDK 21+,这是硬性要求,不能绕过。
- 清理
.gradle/caches是万能药,尤其换 JDK 后。 - React Native 项目升级 SDK 前,先查 RN 官方升级指南。
npx react-native doctor是排查神器。
参考资料
恭喜你!现在你的 RN 项目已经成功运行在 Android 16 上了
如果你也遇到类似问题,直接复制本套方案,99% 能解决!
点赞 + 收藏,遇到问题随时翻!
更多推荐

所有评论(0)