KMPで「import shared」が機能しない時の対処法
はじめに
Android StudioでKotlin Multiplatform(KMP)
を使用してiOSアプリを作成し、Xcodeでそのアプリを開いた際にimport shared
でモジュールが正しくインポートされず、エラーが発生してしまいました。
import SwiftUI
import shared
struct ContentView: View {
let greet = Greeting().greet()
var body: some View {
Text(greet)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
この記事は、私がその問題を解決した方法をまとめたものになります。
私の動作環境
- MacBook Air M1 2020
- メモリ 16GB
- MacOS Sonoma 14.7
結論
オラクル公式サイトからJDK(Java Development Kit)をインストールし、JAVA_HOME
環境変数を適切に設定したところ、問題が解消されました。
説明
Kotlin Multiplatform
はJava Virtual Machine(JVM)
で動作するKotlinコードを使用します。
そのため、KMPプロジェクトのビルドにはJDKが必要です。
まず、オラクル公式サイトからJDKをダウンロードしました。
私は「ARM64 DMG Installer」を選択しましたが、ご自身の環境に合わせてご判断ください。
ダウンロードし、インストールまで完了したらパスを設定します。
私はJAVA_HOME
環境変数にJDKのパスを追加しました。
JAVA_HOME
は、JavaベースのツールがどのJDKを使用すべきかを指定するための環境変数です。
vim .zshrc
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-23.jdk/Contents/Home
パスを通して、ビルドしてみると以下のような画面になりました。
ビルド成功
これによって、KMPプロジェクトのビルドに成功しました!
さいごに
ここまで記事を読んでくださり、ありがとうございました!
KMPは強力なツールですが、適切な設定と理解が必要です。私も今回の学びを活かし、効率的かつ効果的な開発をしていきたいです!
皆さんも素敵なハッピーKMPライフを!!!🌸
地域のためのコミュニケーションアプリ「CocBan」のテックブログです。CocBanの開発・運用にまつわる技術的な知見を投稿します。お問い合わせはこちら(cocban.com/contacts/)です。
Discussion