Composeコンパイラの更新
ComposeコンパイラはGradleプラグインによって補完され、セットアップを簡素化し、コンパイラオプションへのアクセスを容易にします。 Android Gradleプラグイン (AGP) と一緒に適用すると、このComposeコンパイラプラグインは、AGPによって自動的に提供されるComposeコンパイラの座標を上書きします。
Composeコンパイラは、Kotlin 2.0.0以降、Kotlinリポジトリにマージされました。 これにより、ComposeコンパイラがKotlinと同時に出荷され、常に同じバージョンのKotlinと互換性があるため、プロジェクトのKotlin 2.0.0以降への移行がスムーズになります。
Kotlin 2.0.0で作成されたCompose Multiplatformアプリをバージョン2.0.10以降に更新することを強くお勧めします。Compose コンパイラ2.0.0には、非JVMターゲットを持つマルチプラットフォームプロジェクトで型の安定性を誤って推論する場合があり、これが不必要な(あるいは無限の)再コンポジションにつながる可能性があります。
アプリがComposeコンパイラ2.0.10以降でビルドされている場合でも、Composeコンパイラ2.0.0でビルドされた依存関係を使用している場合、これらの古い依存関係が再コンポジションの問題を引き起こす可能性があります。 これを防ぐには、依存関係をアプリと同じComposeコンパイラでビルドされたバージョンに更新してください。
プロジェクトで新しいComposeコンパイラプラグインを使用するには、Composeを使用する各モジュールに適用します。 Compose Multiplatformプロジェクトの移行の詳細については、引き続きお読みください。Jetpack Composeプロジェクトについては、移行ガイドを参照してください。
Compose Multiplatformプロジェクトの移行
Compose Multiplatform 1.6.10以降では、org.jetbrains.compose
プラグインを使用する各モジュールにorg.jetbrains.kotlin.plugin.compose
Gradleプラグインを適用する必要があります。
ComposeコンパイラGradleプラグインをGradleバージョンカタログに追加します。
[versions] # ... kotlin = "2.2.0" compose-plugin = "1.8.2" [plugins] # ... jetbrainsCompose = { id = "org.jetbrains.compose", version.ref = "compose-plugin" } kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
ルートの
build.gradle.kts
ファイルにGradleプラグインを追加します。kotlinplugins { // ... alias(libs.plugins.jetbrainsCompose) apply false alias(libs.plugins.compose.compiler) apply false }
Compose Multiplatformを使用するすべてのモジュールにプラグインを適用します。
kotlinplugins { // ... alias(libs.plugins.jetbrainsCompose) alias(libs.plugins.compose.compiler) }
Jetpack Composeコンパイラ用のコンパイラオプションを使用している場合は、
composeCompiler {}
ブロックで設定します。 詳細については、ComposeコンパイラオプションDSLを参照してください。
可能性のある問題:「Missing resource with path」
Kotlin 1.9.0から2.0.0へ、または2.0.0から1.9.0へ切り替える際に、以下のエラーに遭遇する可能性があります。
org.jetbrains.compose.resources.MissingResourceException: Missing resource with path: ...
これを解決するには、プロジェクトのルートおよび各モジュール内のすべてのbuild
ディレクトリを削除します。
次のステップ
- ComposeコンパイラがKotlinリポジトリに移行することについてのGoogleの発表を参照してください。
- 詳細については、ComposeコンパイラオプションDSLを参照してください。
- Jetpack Composeアプリを移行するには、Composeコンパイラのドキュメントを確認してください。