【Flutter】error: invalid source release: 17 を解決する

2024/04/23に公開

Flutter で Android アプリをビルドした際、ローカル環境ではビルドが成功するが、GitHub Actions 上ではビルドが失敗してしまうという現象が起きました。
エラーの内容は以下になります。

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':share_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17

share_plus をコンパイルする際のビルド環境で Java 17 がサポートされていないことがエラーの原因でした。

ローカル環境の Java バージョンを確認してみると、Java 22がインストールされていました。
Java 17以上がインストールされているため、ローカル環境では問題なくビルドができているということになります。

% java -version
openjdk version "22" 2024-03-19
OpenJDK Runtime Environment (build 22+36-2370)
OpenJDK 64-Bit Server VM (build 22+36-2370, mixed mode, sharing)

GitHub Actions 上でも Java 17をインストールすることでビルドエラーを解決することができました。
以下は GitHub Actions Job の抜粋です。
actions/setup-java@v3 というテンプレートを利用して任意のバージョンの Java をインストールすることができます。

name: Build_Android

on:
  pull_request:
    branches: [ master ]

jobs:
  build_Android:
    name: Build for Android
    runs-on: ubuntu-latest
    timeout-minutes: 20
    steps:
      - name: Checks-out my repository
        uses: actions/checkout@v4
      - name: Setup JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'

Discussion