はじめに
Flutterプロジェクトをクラウド環境でビルドしようとすると、Javaのバージョンに関連したエラーが発生することがあります。これは、新しいFlutterバージョンがある程度新しいJavaのバージョンを必要とするためです。今回は、クラウド環境でのJavaの設定方法について説明します。
エラーの発生状況
Flutterプロジェクトのビルド中に以下のようなエラーメッセージが表示されることがあります。
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':package_info_plus:compileReleaseJavaWithJavac'.
> error: invalid source release: 17
このエラーは、使用しているJavaのバージョンがFlutterプロジェクトのビルドに適していないことを示しています。
設定
Flutterの設定
android/app/build.gradle のJavaのバージョンを設定します。
compileOptions {
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_17
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_17.toString()
}
ローカル環境の確認
Flutterが使用しているJavaのバージョンや場所は以下のコマンドを実行して、「Android toolchain」の欄に表示された。
flutter doctor -v
CodeMagicのJava設定
CodeMagicでJavaのバージョンを設定するには、環境変数に設定します。
以下を設定を入力して、「Add」!
Variable name:
JAVA_HOME
Variable value:
/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home
以下で設定:
codemagic.yaml
ファイルに設定する方法は知りません、、
GitHub ActionsのJava設定
GitHub ActionsでJavaのバージョンを設定するには、.github/workflows/build.yml
ファイルに「Set up JDK 17」の内容を追加します。
jobs:
build:
steps:
- uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
java-version: '17'
distribution: 'adopt'
cache: 'gradle'
- name: Build with Flutter
run: flutter build apk
まとめ
Flutterプロジェクトをビルドする際には、Javaのバージョンに注意が必要です。CodeMagicやGitHub Actionsで適切なJavaバージョンを設定することで、ビルドエラーを回避することができます。上記の方法を参考にして、該当のエラーが出たら対応しましょう