课程概览与前置准备:环境要求、SDK 版本、构建工具配置、项目初始化模板
本章梳理《Android 原生 View 嵌入 Compose》课程所需的环境与工具链。正确配置开发环境是避免后续编译和运行时兼容性问题的前提。以下内容覆盖 Android Studio、JDK、Android SDK、Gradle 与 Compose 编译器的版本要求,以及项目初始化模板的两种方式:从模板创建和手动集成。
1. 环境要求一览
| 工具 / 组件 | 最低版本 | 推荐版本 | 说明 |
|---|---|---|---|
| Android Studio | Hedgehog (2023.1.1) | Ladybug (2024.2.1) 或更高 | 内置 Compose 模板与预览支持 |
| JDK | 17 | 17 LTS 或 21 LTS | Gradle 8.x 与 AGP 8.x 均要求 JDK 17+ |
| Android SDK | API 24 (Android 7.0) | API 34 (Android 14) 作为 compileSdk | minSdk 推荐 21+,targetSdk 建议与 compileSdk 一致 |
| Android Gradle Plugin (AGP) | 8.2 | 8.5 或 8.7 | 具体版本与 Gradle 版本对应 |
| Gradle | 8.2 | 8.7 或 8.9 | AGP 8.x 要求 Gradle 8.2+ |
| Kotlin | 1.9.0 | 1.9.24 或 2.0.0 | Compose 编译器版本需与 Kotlin 严格匹配 |
| Compose BOM | 2023.10.01 | 2024.09.00 | 统一管理 Compose 依赖版本 |
版本匹配原则:Compose 编译器(
kotlinCompilerExtensionVersion)必须与 Kotlin 版本一一对应。错误配对会导致类似 org.jetbrains.kotlin.javax.inject.Inject 的编译失败。推荐在 Compose Kotlin 兼容性表 中查询最新对应关系。
2. Android SDK 与模块版本配置
在模块级 build.gradle.kts 的 android 块中设置:
android {
namespace = "com.example.composeviewembed"
compileSdk = 34
defaultConfig {
applicationId = "com.example.composeviewembed"
minSdk = 21
targetSdk = 34
versionCode = 1
versionName = "1.0"
}
}
若项目需要支持更低的 Android 版本(如 API 19),minSdk 可降至 19,但 Compose 部分功能(如首选项、Material3)可能无法使用。本课程所有示例均以 minSdk 21 作为基准。
3. 构建工具配置:Gradle 与 Compose 依赖
在项目级 build.gradle.kts 中定义 Compose 编译器插件(Kotlin 2.0+ 改为 org.jetbrains.kotlin.plugin.compose):
// 项目级 build.gradle.kts
plugins {
id("com.android.application") version "8.5.0" apply false
id("org.jetbrains.kotlin.android") version "1.9.24" apply false
// Kotlin 2.0+ 使用以下插件
// id("org.jetbrains.kotlin.plugin.compose") version "2.0.0" apply false
}
模块级 build.gradle.kts 引入 Compose BOM 并启用 compose:
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
// Kotlin 2.0+ 取消注释
// id("org.jetbrains.kotlin.plugin.compose")
}
android {
buildFeatures {
compose = true
}
// 仅 Kotlin 1.9.x 需要;2.0+ 由插件自动处理
composeOptions {
kotlinCompilerExtensionVersion = "1.5.14"
}
}
dependencies {
val composeBom = platform("androidx.compose:compose-bom:2024.09.00")
implementation(composeBom)
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-tooling-preview")
implementation("androidx.compose.material3:material3")
implementation("androidx.activity:activity-compose:1.9.2")
debugImplementation("androidx.compose.ui:ui-tooling")
}
常见错误 – 编译器版本不匹配
在使用 Kotlin 1.9.24 时
在使用 Kotlin 1.9.24 时
kotlinCompilerExtensionVersion 应为 1.5.14;若使用 Kotlin 2.0.0,则必须移除 composeOptions 并改用 org.jetbrains.kotlin.plugin.compose 插件。否则 Gradle 同步时会报 Incompatible Compose compiler version。
4. 项目初始化模板
本课程提供两种初始化方式,任选其一即可:
- 使用 Android Studio 模板:File → New → New Project → Empty Compose Activity。自动生成包含
MainActivity、Theme和Greeting的完整项目。 - 手动集成(适用于已有项目):在现有
build.gradle.kts中逐步添加上述配置。确保compileSdk≥ 34,minSdk≥ 21,并在dependencies中加入 Compose BOM 及核心库。
无论哪种方式,最终项目结构应包含以下关键文件:
app/
├── build.gradle.kts
├── src/main/
│ ├── AndroidManifest.xml
│ ├── java/com/example/composeviewembed/
│ │ └── MainActivity.kt
│ └── res/
├── gradle/
│ └── libs.versions.toml (可选版本目录)
└── build.gradle.kts (项目级)
首章实践建议
1. 使用 Android Studio 模板新建项目后,先修改
2. 运行一次空项目,确认 Gradle 同步成功、模拟器上显示 “Hello Android!” 或类似 Compose 界面。
3. 检查
1. 使用 Android Studio 模板新建项目后,先修改
build.gradle.kts 中的版本号与 BOM 至推荐值。2. 运行一次空项目,确认 Gradle 同步成功、模拟器上显示 “Hello Android!” 或类似 Compose 界面。
3. 检查
AndroidManifest.xml 中 application 标签内是否包含 enableJetpack 等属性(通常不需要,但旧项目模板可能保留)。