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 では、各バージョンの互換性ガイドに、破壊的変更のリストと、元の動作を維持するために設定できるフラグが記載されています。