KMPで「import shared」が機能しない時の対処法
はじめに
Android StudioでKotlin Multiplatform(KMP)
を使用してiOSアプリを作成し、Xcodeでそのアプリを開いた際にimport shared
でモジュールが正しくインポートされず、「No such module '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
KMPで「import shared」が機能しない時の対処法Ⅱという記事を公開しました!
この記事とは別の解決方法について記した内容になっていますので、ぜひご覧ください!
皆様のご意見もお待ちしています!