升级Gradle与AGP后AppCenter构建报错:需Java 17当前用Java 11
解决AppCenter构建Java版本不兼容问题
核心原因
AGP 8.0+(包括你用的8.1.0)要求运行Gradle的JDK必须是17,你本地Android Studio已经配置了正确的JDK,但AppCenter构建环境默认使用Java 11,导致冲突。注意:compileOptions里的Java版本是编译字节码的兼容版本,和Gradle运行依赖的JDK版本是两个不同概念。
解决方法
方法1:直接在AppCenter构建配置中指定Java版本
- 登录AppCenter进入目标项目,打开Build模块
- 选中对应构建分支,进入Build configuration页面
- 在Environment分类下找到JDK版本设置,选择Java 17(如Temurin 17),保存后重新触发构建
方法2:通过gradle.properties强制指定JDK路径
在项目根目录的gradle.properties文件中添加以下配置:
org.gradle.java.home=/Users/runner/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.x.x-x/x64/Contents/Home
注意:需替换为AppCenter构建环境中Java 17的实际路径,可先查看构建日志里的可用JDK目录再填写
方法3:用自定义构建脚本切换Java版本
在项目中创建appcenter-pre-build.sh脚本(macOS/Linux环境),添加以下命令:
# macOS环境切换到Java 17 export JAVA_HOME=$(/usr/libexec/java_home -v 17) export PATH=$JAVA_HOME/bin:$PATH
如果是Linux构建环境,可替换为:
sudo update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
将脚本提交到代码仓库后,AppCenter会在构建前自动执行。
内容的提问来源于stack exchange,提问作者marcoms10
相关产品推荐
相关产品推荐

