Compose Multiplatform 入門(プロジェクト作成編)
こんにちは、ホンジョウです。
前回の記事ではCompose Multiplatform開発環境をセットアップしましたが、今回はプロジェクトの作成から実行までをやっていきたいと思います。
Kotlin Multiplatform Compose Wizardを使用したプロジェクトの作成
公式サイトがCompose Multiplatformアプリケーションの雛形を作成するページを用意してくれているので、こちらを使用しますKotlin Multiplatform Compose Wirzard
プロジェクト名・プロジェクトIDの入力
Project Name, Project IDを入力します。プラットフォームの選択
Android, iOS, Web, Desktop, Serverを選択できます。今回はAndroid, iOSを選択します。「DOWNLOAD」ボタンを押すとzipでプロジェクトの雛形がダウンロードされます。それを展開してAndroid Studioでプロジェクトを開きます。
この時点でなにも問題が起こらなければAndroid、iOSのエミュレータで実行できます。
Android Studio 右上の三角のRunボタンをクリックするとエミュレータが立ち上がり、アプリが実行されます。
Andorid、iOSの切り替えはRunボタンの左から選択することができます。
無事に動作したのを確認できたところで、私が踏んだエラーと、その解決方法をいくつかご紹介していこうと思います。
JDKバージョンが低いというエラー
JDKバージョン17以降を使ってくれ、みたいなエラーが出ました。JDKのインストールをしなおして、バージョンが17以降であることを確認しましょう。
% java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)
ジャーナルファイルロックエラー
ジャーナルファイルがすでにロックされていて実行できないというエラーメッセージが出ることがあります。特にAndroidからiOSにプラットフォームを切り替えた直後などにGradleのタスクを実行すると出やすいエラーです。
Owner PID: xxxxx
とエラーメッセージに書いているので、ターミナルでプロセスを停止させます。
kill xxxxx
こちらは実行時に自動でkillコマンドを実行するスクリプトを作成するなどの解決方法しかなさそうだったので、いったん手動でkillする方法で解決しています...。参考:Android Studioでのビルド時のジャーナルファイルロック絶対回避するマン