このページでは、Navigation SDK の Kotlin バージョンの互換性に関する情報と、新しいバージョンに移行するためのガイダンスを提供します。
Navigation SDK の Kotlin バージョン要件
次の表に、Kotlin バージョンの要件と、最近のバージョンの Navigation SDK で推奨される AGP と Gradle のバージョンを示します。
| Navigation SDK のバージョン | Kotlin バージョン(必須) | Android Gradle プラグイン(AGP)と Gradle のバージョン(推奨) |
|---|---|---|
| 8.0+ | 2.3.0 |
重要: Navigation SDK 8.0 以降では、AGP 9.0.1 は推奨ではなく、最小要件です。SDK が |
| 7.7 ~ 7.9 | 2.3.0 |
|
| 7.3 ~ 7.6 | 2.2.10 |
|
| 6.3 ~ 7.2 | 2.1 |
|
| 6.0 ~ 6.2 | 2.0 |
|
| 5.1 ~ 5.99.1 | 1.9 | JDK-8272564 の回避策が用意されている AGP 7.3 以降を使用することをおすすめします。 |
Kotlin バージョンの互換性
Kotlin 2.3 は Kotlin 2.2 との下位互換性をサポートしています。つまり、Navigation SDK で Kotlin 2.2 をすでに使用している場合は、互換性を破る変更をすべて解決しなくても、Kotlin 2.3 にアップグレードできます。ただし、これは安定した言語機能にのみ適用されます。Kotlin 言語でアルファ版、ベータ版、試験運用版の機能を使用している場合は、アップグレード時に追加の変更が必要になることがあります。
移行を容易にする: Kotlin 互換性フラグ
Kotlin には、互換性を破る変更を制限するのに役立つ 2 つのフラグが用意されています。https://kotlinlang.org/docs/compatibility-modes.html
language-version X.Y
このフラグは、以前の Kotlin バージョンの動作に対する互換性を破る変更を元に戻します。
たとえば、Kotlin 2.2 を使用している場合は、[ -
language-version 2.2] を指定すると、新しい互換性を破る変更は有効になりません。
android {
kotlinOptions {
languageVersion = '2.2'
}
}
api-version X.Y
このフラグは、apiVersion より新しい Kotlin バージョンの API が使用されている場合に Gradle ビルドエラーをスローします。
android {
kotlinOptions {
apiVersion = '2.2'
}
}
よりターゲットを絞ったアプローチ
Kotlin 互換性フラグを使用するだけでなく、Kotlin のリリースノートを確認し、アップグレード元のバージョンから保持する動作を選択することをおすすめします。Kotlin の各バージョンの互換性ガイドには、互換性を破る変更のリストと、元の動作を維持するために設定できるフラグが記載されています。
今後の Kotlin のアップグレード
Kotlin は 6 か月ごとに新しいバージョン(言語リリース)をリリースします。Google は通常、その 1 ~ 2 か月後に最新バージョンをデフォルトとしてプロダクトに組み込みます。以前の Kotlin バージョンには、互換性を破る変更が含まれていたため、Navigation SDK のお客様は新しいバージョンにアップグレードする必要がありました。そのため、最新バージョンの Navigation SDK を導入する場合は、6 か月ごとに Kotlin のアップグレードを計画することをおすすめします。