Android项目升级Gradle 8:如何让Cirrus CI使用Java 17
解决Cirrus CI中Gradle 8需要Java 17的配置问题
Gradle 8要求运行环境为Java 17及以上,你当前使用的cirrusci/android-sdk:30镜像默认搭载Java 11,以下两种方案可解决该问题:
方案一:更换支持Java 17的Cirrus Android镜像
Cirrus CI提供的新版Android SDK镜像已预装Java 17,直接替换原有镜像即可,无需额外配置。例如使用cirrusci/android-sdk:34(可根据项目所需Android SDK版本选择对应镜像):
修改.cirrus.yml的container配置段:
container: image: cirrusci/android-sdk:34 cpu: 4 memory: 16G kvm: true
该方案操作简单,新版镜像已完成Java 17的环境配置,适合大多数场景。
方案二:在现有镜像中安装并切换到Java 17
若需保留原有Android SDK镜像版本,可在CI任务中添加前置脚本,安装OpenJDK 17并设置为默认Java环境:
在check_android_task中新增setup_java17_script,放在所有任务的最前面:
check_android_task: name: Run Android tests setup_java17_script: | # 安装OpenJDK 17 apt-get update && apt-get install -y openjdk-17-jdk # 切换默认Java版本 update-alternatives --set java /usr/lib/jvm/java-17-openjdk-amd64/bin/java update-alternatives --set javac /usr/lib/jvm/java-17-openjdk-amd64/bin/javac # 验证版本(可选) java -version javac -version # 以下保留原有脚本不变 install_emulator_script: sdkmanager --install "system-images;android-30;google_apis_playstore;x86" create_avd_script: echo no | avdmanager create avd --force --name emulator --package "system-images;android-30;google_apis_playstore;x86" # ...其余原有配置
执行该脚本后,CI环境会切换为Java 17,满足Gradle 8的运行要求。
内容的提问来源于stack exchange,提问作者Luca Engel
相关产品推荐
相关产品推荐

