React Native安卓构建失败:compileDebugJavaWithJavac任务执行出错
解决React Native 0.73.5 Android构建JdkImageTransform错误
问题核心
你遇到的编译错误是JDK 21与React Native 0.73.5、Android Gradle Plugin(AGP)兼容性不匹配导致的。RN 0.73.x官方推荐使用JDK 17,JDK 21的模块系统逻辑与当前AGP版本的JdkImageTransform处理流程冲突,进而引发多个依赖库的编译失败。
解决方案
方案1:降级JDK到17(推荐,适配RN 0.73)
安装JDK 17
下载Zulu 17或Oracle JDK 17,安装后记录路径(例如/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home)。临时切换终端JDK版本
在项目根目录的终端执行:export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH验证版本:
java -version输出需显示
openjdk version "17.x.x"。匹配Gradle与AGP版本
RN 0.73.5默认适配Gradle 7.5和AGP 7.4.2,修改以下文件:- 根目录
gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip - 根目录
build.gradle的dependencies块:classpath("com.android.tools.build:gradle:7.4.2")
- 根目录
清理缓存并重建
./gradlew clean rm -rf ~/.gradle/caches rm -rf node_modules && npm install npm run android
方案2:升级React Native到支持JDK 21的版本
若想保留JDK 21,需将RN升级到0.74.x及以上版本(RN 0.74开始官方支持JDK 21和AGP 8.x):
- 执行RN升级命令:
npx react-native upgrade - 按照官方升级指南调整Gradle和AGP版本,确保与RN 0.74匹配。
额外优化(非必须但推荐)
移除根build.gradle中已废弃的jcenter()仓库,替换为mavenCentral(),避免潜在依赖拉取问题:
allprojects { repositories { mavenLocal() mavenCentral() maven { url("https://maven.google.com") } google() maven { url 'https://jitpack.io' } } }
内容的提问来源于stack exchange,提问作者Marc-Antoine Leonelli
相关产品推荐
相关产品推荐

