Kotlin 2.0 に移行する

Android 6.0 以降用の Navigation SDK を使用している場合は、Kotlin 2.0 にアップグレードする必要があります。このページでは、Kotlin の新しいバージョンに簡単に移行するためのガイダンスを示します。

Gradle と AGP の互換性

Kotlin 2.0 には、Gradle と Android Gradle プラグイン(AGP)のバージョンに関する最小バージョンと最大バージョンの要件があります。プロジェクトが Kotlin 2.0 の要件を満たしていることを確認します。

Navigation SDK 6.0 以降の AGP の最小バージョン

Navigation SDK 6.0 とともに AGP 7.3 以降を使用することをおすすめします。AGP 8.3 と Gradle 8.4 で SDK を検証しました。この SDK は R8 のフルモードと互換性があります。

Kotlin バージョンの互換性

Kotlin は、3 つ前の言語バージョンとの下位互換性をサポートしています。つまり、Navigation SDK ですでに Kotlin 1.7 以降を使用している場合は、破壊的変更をすべて解決しなくても Kotlin 2.0 にアップグレードできます。ただし、これは安定した言語機能にのみ適用されます。Kotlin 言語でアルファ版、ベータ版、試験運用版の機能を使用している場合は、アップグレード時に追加の変更が必要になることがあります。

移行の容易化: Kotlin 互換性フラグ

前のセクションで説明したように、Kotlin はアップグレード時に最大 3 つの以前のバージョンの言語をサポートしています。Kotlin には、破壊的変更を制限するために役立つ 2 つのフラグが用意されています。

言語バージョン X.Y

このフラグは、破壊的変更を以前の Kotlin バージョンの動作に戻します。たとえば、Kotlin 1.7 を使用している場合は、[ - language-version 1.7] を指定すると、新しい破壊的変更が適用されなくなります。

android {
   kotlinOptions {
       languageVersion = '1.7'
   }
}

API バージョン X.Y

このフラグを使用すると、依存するダウンストリーム コードが Kotlin 2.0 を組み込む準備ができる前に、新しい API が使用されなくなります。

android {
   kotlinOptions {
       apiVersion = '1.7'
   }
}

よりターゲットを絞ったアプローチ

Kotlin 互換性フラグを使用するだけでなく、Kotlin リリースノートを確認し、アップグレード元のバージョンから維持する動作を選択することをおすすめします。Kotlin では、各バージョンの互換性ガイドに、破壊的変更のリストと、元の動作を維持するために設定できるフラグが記載されています。