Jetpack Compose - 设置 Compose 编译器、设置 Compose 依赖项

设置 Compose 编译器

1、具体实现
  1. 在 libs.versions.toml 文件中,添加如下内容
toml 复制代码
[versions]
kotlin = "2.0.0"

[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

# 添加 Compose 编译器
kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
  1. 在项目级 build.gradle.kts 文件中,添加如下内容,项目级声明,告诉 Gradle 这个插件可能会用,但不激活
kotlin 复制代码
plugins {
    alias(libs.plugins.kotlin.compose) apply false
}
  1. 在模块级 build.gradle.kts 文件中,添加如下内容,模块级启用,在具体的模块真正激活插件
kotlin 复制代码
plugins {
    alias(libs.plugins.kotlin.compose)
}
2、补充学习
  1. 可以直接在模块级启用,项目级声明不是必须的

  2. 项目级声明的真正价值在于,项目级 build.gradle.kts 文件只声明版本,不应用,各个模块级 build.gradle.kts 文件继承版本,直接应用

  3. 版本集中在 libs.versions.toml 文件管理,所有模块版本统一,升级只需改一处

  4. 对于单模块项目,可以直接模块级启用;对于多模块项目,项目级声明更好


设置 Compose 依赖项

1、具体实现
  1. 在模块级 build.gradle.kts 文件中,添加如下内容,以在 Android Studio 中启用 Compose 功能
kotlin 复制代码
android {
    buildFeatures {
        compose = true
    }
}
  1. 设置 Compose 依赖项
kotlin 复制代码
dependencies {

    val composeBom = platform("androidx.compose:compose-bom:2026.04.01")
    implementation(composeBom)
    androidTestImplementation(composeBom)

    // Choose one of the following:
    // Material Design 3
    implementation("androidx.compose.material3:material3")
    // or skip Material Design and build directly on top of foundational components
    implementation("androidx.compose.foundation:foundation")
    // or only import the main APIs for the underlying toolkit systems,
    // such as input and measurement/layout
    implementation("androidx.compose.ui:ui")

    // Android Studio Preview support
    implementation("androidx.compose.ui:ui-tooling-preview")
    debugImplementation("androidx.compose.ui:ui-tooling")

    // UI Tests
    androidTestImplementation("androidx.compose.ui:ui-test-junit4")
    debugImplementation("androidx.compose.ui:ui-test-manifest")

    // Optional - Add window size utils
    implementation("androidx.compose.material3.adaptive:adaptive")

    // Optional - Integration with activities
    implementation("androidx.activity:activity-compose:1.13.0")
    // Optional - Integration with ViewModels
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0")
    // Optional - Integration with LiveData
    implementation("androidx.compose.runtime:runtime-livedata")
    // Optional - Integration with RxJava
    implementation("androidx.compose.runtime:runtime-rxjava2")

}
2、解读
kotlin 复制代码
val composeBom = platform("androidx.compose:compose-bom:2026.04.01")
implementation(composeBom)
androidTestImplementation(composeBom)
  1. BOM(Bill of Materials,物料清单)统一管理所有 Compose 库的版本,确保兼容性,后续依赖不需要写版本号,由 BOM 自动决定

  2. 主代码模块使用 BOM,后续所有 Compose 依赖无需写版本号

  3. 测试模块也使用同一个 BOM,保证测试代码与主代码版本一致

kotlin 复制代码
// Choose one of the following:
// Material Design 3
implementation("androidx.compose.material3:material3")
// or skip Material Design and build directly on top of foundational components
implementation("androidx.compose.foundation:foundation")
// or only import the main APIs for the underlying toolkit systems,
// such as input and measurement/layout
implementation("androidx.compose.ui:ui")
依赖项 说明
material3 Material Design 3 组件(按钮、卡片等),大多数项目选这个
foundation 无 Material 风格的基础组件(例如,BasicTextField)
ui 最底层,布局、输入、测量,需要自己构建 UI
  • 一般只选 material3,它已包含 foundation 和 ui
kotlin 复制代码
// Android Studio Preview support
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")

// UI Tests
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-test-manifest")
依赖项 说明
ui-tooling-preview @Preview 注解支持
ui-tooling 交互式预览、检查布局
ui-test-junit4 UI 测试框架
ui-test-manifest 测试用的 AndroidManifest
kotlin 复制代码
// Optional - Add window size utils
implementation("androidx.compose.material3.adaptive:adaptive")

// Optional - Integration with activities
implementation("androidx.activity:activity-compose:1.13.0")
// Optional - Integration with ViewModels
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.10.0")
// Optional - Integration with LiveData
implementation("androidx.compose.runtime:runtime-livedata")
// Optional - Integration with RxJava
implementation("androidx.compose.runtime:runtime-rxjava2")
依赖项 说明
adaptive 窗口大小适配工具
activity-compose 将 Compose 与 ComponentActivity 深度集成
lifecycle-viewmodel-compose ViewModel 集成
runtime-livedata LiveData 集成
runtime-rxjava2 RxJava2 集成
相关推荐
马剑威(威哥爱编程)6 分钟前
【AI全栈后端12-08】Spring Boot 用 MCP 统一接入内部系统:让 AI 接一次,全公司复用
java·人工智能·spring boot
顽疲13 分钟前
从零用 Java 实现小红书 SpringBoot Vue UniApp(23)笔记话题多对多:一条笔记进多个话题池
java·vue.js·spring boot
2501_9159090618 分钟前
iOS应用从开发到上架App Store的完整发布流程与步骤指南
android·ios·小程序·https·uni-app·webview
木井巳26 分钟前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
Crazy________38 分钟前
05Linux内存管理核心原理与运维实战
java·开发语言
Nebula_g39 分钟前
JavaSE拓展:工具类Executors
java·开发语言·后端·spring·基础·javase
扶风ff1 小时前
练题簿在线免费刷题:会员线下组卷、Word 试卷与成绩导入,课堂检测更方便
java·开发语言·算法·小程序·word
鱼宵1 小时前
Spring AI 可观测与透明化:traceId 串起全链路,思考过程实时直播给用户
java·人工智能·spring·链路追踪·springai
狗凯之家源码网1 小时前
AI 步数修改提交系统源码应用场景与落地指南
android·数据库·人工智能·运动步数
天天被压力1 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #25】北交所财务技术指标难搞?12个接口,报表+MACD全拿
java·人工智能·python