Android S(Android 12)だとJava11が必要でアプリの自動ビルドがこけた
スマホアプリの開発者の皆さんはAndroid SのSDK対応を行なうと思いますが、対応が終わってGitにPushすると自動ビルドのサービス側でJava11が設定されておらず、自動ビルドがコケたりします。プロジェクトによってBitriseを使ったり、GitHub Actionsを使ったりしていますが、両方で対応が必要だったため、対応方法を晒しておきます。
Bitriseの場合
Workflow Editor画面で”Cache:Pull” Stepの後ろくらいに、”Do anything with Script step”を置き(自動でUIで作られるWorkflowだと元々設定されている)、下記のスクリプトを追記する。
sudo update-alternatives --set javac /usr/lib/jvm/java-11-openjdk-amd64/bin/javac
sudo update-alternatives --set java /usr/lib/jvm/java-11-openjdk-amd64/bin/java
export JAVA_HOME='/usr/lib/jvm/java-11-openjdk-amd64'
envman add --key JAVA_HOME --value '/usr/lib/jvm/java-11-openjdk-amd64'
GitHub Actionsの場合
ActionsのYAMLを下記のようにしておく。
name: Java CI
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Gradle
run: ./gradlew build