新しい PC で、Android Studio (Giraffe | 2022.3.1) をインストールし、従来のプロジェクトをビルドしようとしたところ、次のエラーが表示されるようになった。
Gradle project sync failed. Basic functionality.
Unable to make field private static final java.util.Map ...
これらのエラーは、色々な原因で起きるようだが、色々やってみた結果、Java のバージョンが新しいことが原因だった。
Android Gradle Plugin (AGP) Version: 3.3.3
Gradle Version: 4.10.1
この場合、Gradle で Java 21 や Java 17 を使うと、上記エラーになる。
Java 8 にすると、エラーなくビルドできるようになった。
なお、この AGP の Version は古いので、その後、更新した。
Gradle Version の設定は、File - Project Structure の Project でできる。
Java の設定は、File - Settings - Build... - Build Tools - Gradle でできる。
別のプロジェクトでは、次のエラーが表示された。
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
こういうエラーメッセージは、わかりやすい。
Android Gradle Plugin Version: 7.0.0
Gradle Version: 7.0.2
の場合、Java 17 にすると、エラーが解決した。
さらに、別のプロジェクトでは、次のエラーが表示された。
Unsupported Java. Your build is currently configured to use Java 17.0.6 and Gradle 6.7.1. Possible solution: - Upgrade Gradle wrapper to 7.2 version and re-import the project
AGP Upgrade Assistant を使い、次の設定にしたところ、ビルドできるようになった。
Java: 17
Android Gradle Plugin Version: 7.4.2
Gradle Version: 7.5
Android Gradle プラグインと必要な環境は、次に説明されている。
Android Gradle プラグイン(AGP) のバージョンと必要な Gradle のバージョン
3.3.0 ~ 3.3.3 : 4.10.1 以降
4.2.0 以降 : 6.7.1 以降
7.0 : 7.0 以降
また、必要な Java のバージョンや SDK Build Tools のバージョンも書かれている。
ただし、こういった様々なバージョンを合わせていくのは面倒なので、AGP Upgrade Assistant が便利だとわかった。
なお、AGP Upgrade Assistant を使った場合でも、Java のバージョンは更新されず、ビルドエラーになる場合もあった。
Android Studio のバージョンと必要な AGP のバージョンは、次のリリースノートに書かれている。
Giraffe | 2022.3.1 の必要な AGP バージョンは、3.2 ~ 8.1 とある。
また、API レベルと Android Studio の最小バージョンと AGP の最小バージョンも書かれている。
2023年12月の時点で、必要な API レベルは 33 (Android 13) なので、Android Studio の最小バージョンは Flamingo | 2022.2.1 だが、今後、必要な API レベルが 34 (Android 14) になった場合、Hedgehog | 2023.1.1 以上にアップデイトすることが必要になる。