macOSで Kotlin Multiplatform Mobile(KMM) のスケルトンプロジェクトの iosApp のビルドが通らない問題が発生した。
JVMのバージョンを11にする必要があったが、Android Studio内の設定で「Gradle JDK」を変更しても、システムのJDK(macOS組み込みのJDK)が使われてしまう問題であった。この現象が発生してしまうのが M1 Mac だからなのか macOS だからなのかについては検証できていない。
実行環境は以下の通り。
- Android Studio Bumblebee | 2021.1.1 Patch 3
- macOS 12.3.1
- MacBook Pro(16インチ、2021)
KMM の iosApp のビルドができない
KMMのプラグインをインストールして、スケルトンプロジェクトを作成した。androidApp と iosApp が生成された。
androidApp の方は問題なくビルドでき Android エミュレータで実行できることを確認したが、iosApp の方はビルド時にエラーが発生してしまうことがわかった。
* What went wrong: An exception occurred applying plugin request [id: 'com.android.application'] > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing `org.gradle.java.home` in `gradle.properties`. * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 1s ** BUILD FAILED **
要はJava 1.8 ではなくて Java 11 を使えとのこと。Gradle JDK の設定値を確認してもAndroid Studioに同梱されている Java 11 を使っていることになっている。
Android Studio の Terminal で ./gradlew --version
をした結果が以下の通り。
------------------------------------------------------------ Gradle 7.2 ------------------------------------------------------------ Build time: 2021-08-17 09:59:03 UTC Revision: a773786b58bb28710e3dc96c4d1a7063628952ad Kotlin: 1.5.21 Groovy: 3.0.8 Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020 JVM: 1.8.0_312 (Temurin 25.312-b07) OS: Mac OS X 10.16 x86_64
JVMが 1.8.0 になっていた。ちなみに Android Studio の設定で Gradle JDK を変更しても、システムの 1.8.0 を使っているようだった。
解決
macOSの ターミナルで vim ~/.zshenv
して JAVA_HOME を指定した。
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
.zshenv
を保存して、Android Studio を再起動した。
Android Studio の Terminal で ./gradlew --version
をした結果が以下の通り。
------------------------------------------------------------ Gradle 7.2 ------------------------------------------------------------ Build time: 2021-08-17 09:59:03 UTC Revision: a773786b58bb28710e3dc96c4d1a7063628952ad Kotlin: 1.5.21 Groovy: 3.0.8 Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020 JVM: 11.0.11 (JetBrains s.r.o. 11.0.11+0-b60-7772763) OS: Mac OS X 12.3.1 aarch64
無事に KMM の iosApp をiOSシミュレータで起動するようになった。