ソフトウェアの開発において、依存関係は重要な要素の一つです。一つのライブラリが別のライブラリに依存している場合、最新バージョンのアップデートを行う際には、注意が必要です。
今回は、依存関係をアップデートする際に留意しておくべきことについて解説します。
で、[File] - [Project Structure]
からのこの画面。
This project uses Gradle Version Catalogs. There are some limitations. Learn more.
[Suggestions]
画面だけで完全に更新できませんよね。
「プラグイン、ライブラリ同士の互換性は考慮されていないものがある。」
「提案されない表示されないライブラリがある。」
ということで、どこに注意しながら新しいものに更新していくとスムーズに進むか、という話です。
🔗 Android Studio と Android Gradle Plugin
Android Studio は、Android アプリ開発に必要な開発環境を提供する統合開発環境です。
Android Gradle Plugin (AGP) は、Android Studio のビルドシステムに使用されるツールであり、ビルドプロセスを自動化するために必要です。
👉 Android Gradle plugin and Android Studio compatibility - Android Studio Flamingo | 2022.2.1 | Android Developers
Android Studio で使用している Android Gradle Plugin のバージョンを確認するには、プロジェクトの build.gradle ファイルを開き、以下のように dependencies ブロック内に記述されている AGP のバージョン番号を確認します。
dependencies {
classpath 'com.android.tools.build:gradle:x.y.z'
// ...
}
または、build.gradle に記述がない Version Catalog 記述の Android Gradle Plugin のバージョンは、以下の、どちらかのプラグインID のバージョン(共通) です。
com.android.application
com.android.library
👉 【Plugin DSL】Android Gradle Plugin のバージョンを調べる方法
👉 【Plugin DSL】「com.android.tools.build:gradle」の記述は不要?
Gradle Version Catalogs では以下のようになります。
# libs.versions.toml
[versions]
android-gradle-plugin = "8.0.1"
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
// buid.gradle
plugins {
alias libs.plugins.android.application
}
また、最新の AGP バージョンを確認するには、Google's Maven Repository を参照します。
👉 com.android.application.com.android.application.gradle.plugin - Google's Maven Repository
🔗 Android Gradle Plugin と Gradle
Gradle は、オープンソースのビルドツールであり、Java や Kotlin、Groovy などのプログラミング言語に対応しています。Android Studio のビルドシステムには、Gradle が採用されています。
AGP は、Gradle に依存しており、AGP のバージョンアップに伴い、Gradle のバージョンもアップデートする必要があります。
また、Gradle のバージョンアップには、Android Studio のバージョンアップも伴う場合がありますので、注意が必要です。
Android Gradle Plugin は Gradle に依存しているため、AGP をアップデートする場合には、Gradle も同時にアップデートする必要があります。
👉 Update Gradle - Android Gradle plugin release notes | Android Studio | Android Developers
Gradle のバージョンを確認するには、プロジェクトの gradle/wrapper/gradle-wrapper.properties ファイルを開き、以下のように distributionUrl に記述されている Gradle のバージョン番号を確認します。
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
また、最新の Gradle バージョンを確認するには、Gradle 公式サイトの Gradle Distributions を参照します。
👉 Gradle Distributions
🔗 Kotlin と Jetpack Compose Compiler
Kotlin は、Android アプリ開発に必要なプログラミング言語の一つです。Jetpack Compose Compiler は、Kotlin をベースにした Jetpack Compose ライブラリのコンパイラです。
Jetpack Compose は、Android のユーザーインターフェースを作成するための新しい方法を提供するライブラリであり、Kotlin と密接に関連しています。
👉 Compose to Kotlin Compatibility Map | Android Developers
Jetpack Compose Compiler のバージョンをアップデートする場合には、Kotlin のバージョンも確認し、必要に応じてアップデートする必要があります。
Kotlin と Jetpack Compose Compiler の依存関係を確認するには、以下のように Kotlin と Compose Compiler のバージョン番号を確認します。
# libs.versions.toml
[versions]
compose-compiler = "1.4.7"
kotlin = "1.8.21"
[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" }
// build.gradle
plugins {
alias libs.plugins.kotlin.android // 'kotlin-android'
alias libs.plugins.kotlin.kapt // 'kotlin-kapt'
}
android {
composeOptions {
kotlinCompilerExtensionVersion libs.versions.compose.compiler.get()
}
}
また、最新の Kotlin と Jetpack Compose Compiler のバージョンを確認するには、それぞれ以下を参照します。
👉 Maven Repository: org.jetbrains.kotlin » kotlin-gradle-plugin
👉 androidx.compose.compiler.compiler - Google's Maven Repository
🔗 まとめ
Android Studio のビルドシステムには、Android Gradle Plugin が使用されており、AGP は Gradle に依存しています。
また、Kotlin と Jetpack Compose Compiler、そして SDK のライブラリ同士にも依存関係があります。
最新バージョンにアップデートする際には、それらのつながりを確認し、必要に応じて一括でアップデートすることをおすすめします。
コアな部分は Stable 最新バージョンで揃える、とすると、以下が、今現在ベストでしょう。
Android Studio
Flamingo | 2022.2.1
↕︎
Android Gradle Plugin
8.0.1
↕︎
Gradle
8.1.1
Kotlin
1.8.21
↕︎
Jetpack Compose Compiler
1.4.7
すぐ忘れるので libs.versions.toml にコメントで貼りつける。
[versions]
# Android Studio - AGP - Gradle
# Kotlin - Compose Compiler
#
# Android Studio version Required plugin version
# Giraffe | 2022.3.1 3.2-8.1
# Flamingo | 2022.2.1 3.2-8.0
# https://developer.android.com/studio/releases#android_gradle_plugin_and_android_studio_compatibility
#
# Plugin version Minimum required Gradle version
# 8.2 8.1
# 8.1 8.0
# 8.0 8.0
# https://developer.android.com/studio/releases/gradle-plugin#updating-gradle
#
# Android Studio :
# https://developer.android.com/studio
#
# Android Gradle Plugin :
# https://maven.google.com/web/index.html#com.android.application:com.android.application.gradle.plugin
#
# Gradle :
# https://services.gradle.org/distributions/
android-gradle-plugin = "8.0.1"
# Compose Compiler Version Compatible Kotlin Version
# 1.4.7 1.8.21
# 1.4.6 1.8.20
# 1.4.5 1.8.20
# 1.4.4 1.8.10
# https://developer.android.com/jetpack/androidx/releases/compose-kotlin#pre-release_kotlin_compatibility
#
# compose-compiler :
# https://maven.google.com/web/index.html?authuser=0#androidx.compose.compiler:compiler
#
# kotlin :
# https://mvnrepository.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin
# https://central.sonatype.com/artifact/org.jetbrains.kotlin/kotlin-gradle-plugin/
compose-compiler = "1.4.7"
kotlin = "1.8.21"
コメント内URLからリンクをブラウザを開くのは、⌘ (command) + click
で。