AppCenter云构建React Native报错需JDK11及以上、JDK8不兼容
问题根因
构建报错核心是JDK版本不匹配:当前AppCenter构建环境默认调用的是JDK8,而项目使用的Gradle 7.2版本要求最低运行环境为JDK11,版本不兼容直接导致Gradle守护进程异常终止,构建失败。
解决方案
- 方案一:直接修改AppCenter构建环境变量(最简便,无需改项目代码)
进入对应应用的安卓分支构建配置页,找到环境变量配置项,新增一条变量:- 变量名:
JAVA_HOME - 变量值:
$(JAVA_HOME_11_X64)
保存配置后重新发起构建即可,AppCenter的官方构建镜像默认预装了JDK11,这个变量会直接把构建时的Java路径切到JDK11目录。
- 变量名:
- 方案二:通过构建脚本固定JDK版本(适合多环境统一配置场景)
- 打开安卓模块下的
build.gradle文件,在android配置块中补充JDK版本对齐配置:
android { compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } }- 在项目根目录新建名为
appcenter-post-clone.sh的脚本文件,赋予可执行权限后写入以下内容,在构建流程的代码拉取阶段完成后自动切换JDK版本:
提交该文件到代码仓库后重新触发构建即可。#!/usr/bin/env bash export JAVA_HOME="$JAVA_HOME_11_X64" export PATH="$JAVA_HOME/bin:$PATH" java -version - 打开安卓模块下的
- 方案三:降级Gradle版本适配JDK8(不推荐)
如果有特殊限制必须使用JDK8,可将项目Gradle版本降级到6.x系列、Android Gradle插件降级到4.1.x及兼容JDK8的版本,但该方案无法适配后续React Native及安卓SDK的新版本迭代,存在后续兼容隐患。
校验方法
重新发起构建后,查看构建日志里的Java版本输出,若显示为JDK11相关版本信息,说明配置生效,不会再触发该版本不兼容报错。
内容的提问来源于stack exchange,提问作者HenryO
相关产品推荐
相关产品推荐

