Jetpack compose 1.0.5を利用する
Android Studioで新しいプロジェクトを作成するとき、プロジェクトテンプレートに "Empty Compose Activity" を選択すると Jetpack Compose 1.0.1が指定されている。これを公式ドキュメント記載の通り、最新の1.0.5を利用するように修正する(日本語ドキュメントでは正式リリース前の 1.0.0-alpha11
記載なので英語版に表示を切り替える必要がある点に注意)。
動作環境:
Android Studio Arctic Fox | 2020.3.1 Patch 4
Runtime version: 11.0.10+0-b96-7249189 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
変更点
プロジェクトルートの build.gradle
で指定している composeのバージョンで 1.0.5を指定する。
ext {
- compose_version = '1.0.1'
+ compose_version = '1.0.5'
}
また、同ファイルの kotlin-gradle-plugin
のバージョンを 1.5.31 にアップデートする。
dependencies {
classpath "com.android.tools.build:gradle:7.0.4"
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21"
+ classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
以上で Jetpack Compose 1.0.5 が利用できる。
compose 1.0.5
compose 1.0.5のリリースノートはこちら。1.0.1 からの主な変更点は不具合修正および依存Kotlinバージョンが1.5.21から1.5.31にアップデートされたこと。不具合修正が含まれているので新しいバージョンがよいが、基本的には利用したいKotlinバージョンに応じて対応バージョンを選択することがよい。
composeは依存するKotlinバージョンが決まっているので、composeをアップデートするとKotlinバージョンも変更する必要があるし、逆に利用したいKotlinバージョンを変更すると対応するcomposeバージョンに変更する必要がある。
ComposeOptions.kotlinCompilerVersion is deprecated
上記変更点の通り修正しても、ComposeOptions.kotlinCompilerVersion is deprecated
という警告メッセージが表示される。これは、テンプレートで作成したプロジェクトでは root/app/build.gradle
においてkotlinCompilerVersionを指定していることが原因。
composeOptions {
kotlinCompilerExtensionVersion compose_version
kotlinCompilerVersion '1.5.21'
}
この値は現在参照されておらず、削除しても問題ない。kotlinのバージョンは root/build.gradle
に記載の kotlin-gradle-plugin
のバージョンと等しく、こちらを参照している。逆に、kotlinCompilerVersion
が kotlin-gradle-plugin
バージョンと乖離していても動作に影響はない。
dependencies {
classpath "com.android.tools.build:gradle:7.0.4"
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.31"
We recommend using a newer Android Gradle plugin to use compileSdk = 32
これはJetpack Composeとは関係ないけれど、このような警告が出力される場合がある。Android StudioのSDKマネージャーを開くと、最新のSDKバージョンとして32が選択肢にある。何も考えずにこれを有効にしてしまうと、テンプレートから生成したプロジェクトは compileSdk = 32 を指定してくる。
最新の Android Gradle Plugin(AGP) 7.0.4 を利用しても(リリースノートを見ると 7.0.1までしか記載がない?) compileSdk = 31までしかテストしていないので修正しろと警告が出る。
We recommend using a newer Android Gradle plugin to use compileSdk = 32
This Android Gradle plugin (7.0.4) was tested up to compileSdk = 31
This warning can be suppressed by adding
android.suppressUnsupportedCompileSdk=32
to this project's gradle.properties
The build will continue, but you are strongly encouraged to update your project to
use a newer Android Gradle Plugin that has been tested with compileSdk = 32
警告の通り、android.suppressUnsupportedCompileSdk=32
を指定して警告出力を抑止するか、compileSdk = 31にするか、 AGPをより新しいバージョンを利用する(提供されていないので選択不可)かのどれかを選ぶ必要がある。通常用途ではSDK = 32を選ぶ理由がないので、SDKマネージャーからSDK = 32をアンインストールした上でcompileSdk = 31に修正する方法がよさそう。
Discussion