项目环境搭建:Android Studio 配置、Compose BOM 版本选择、依赖声明
安全密码输入框的实现依赖于正确的项目环境。本章将指导你完成 Android Studio 开发工具的配置、Compose BOM 版本的合理选择,以及核心依赖项(material3、security-crypto)的声明。一个稳健的环境搭建能避免后期 80% 的编译和运行时问题。
2.1 Android Studio 开发环境配置
确保使用 Android Studio Hedgehog(2023.1.1)或更高版本,并完成以下关键配置项:
- AGP(Android Gradle Plugin)版本:建议选用 8.2.x,与 Kotlin 1.9.x 配合稳定。
- JDK 版本:使用 JDK 17(Embedded JDK 或通过
File > Settings > Build, Execution, Deployment > Build Tools > Gradle指定)。 - SDK 版本:
compileSdk设为 34,minSdk设为 28(Android 9),targetSdk设为 34。 - Kotlin 编译器扩展:在
gradle.properties中启用kotlin.code.style=official。
💡 提示:如果项目从旧版本迁移,请首先升级到 AGP 8.2+ 并同步 Gradle,再修改 Compose 相关依赖,避免版本冲突。
2.2 Compose BOM 版本选择
Compose BOM(Bill of Materials)统一管理所有 Compose 库版本,避免手动指定每个库的版本号。推荐使用 2024.02.00 或更新的稳定版本。BOM 版本与 Compose 编译器扩展版本存在对应关系:
| BOM 版本 | Compose 编译器扩展版本 | material3 版本 | 备注 |
|---|---|---|---|
| 2024.02.00 | 1.5.10 | 1.2.0 | 推荐稳定版,与 Kotlin 1.9.22 兼容 |
| 2024.01.00 | 1.5.8 | 1.1.2 | 上一年末稳定版 |
| 2023.10.01 | 1.5.7 | 1.1.2 | 包含安全补丁 |
在项目根目录的 gradle.properties 中添加 android.useAndroidX=true 和 android.nonTransitiveRClass=true,确保兼容性。
2.3 依赖声明:material3 与 security-crypto
在模块级 build.gradle.kts(或 build.gradle)中声明以下依赖。注意顺序:BOM 必须放在依赖前列,并使用 platform() 关键字。
dependencies {
// Compose BOM – 统一版本
val composeBom = platform("androidx.compose:compose-bom:2024.02.00")
implementation(composeBom)
// Material 3 – 现代 UI 组件
implementation("androidx.compose.material3:material3")
// 安全加密库 – 自动加密/解密 SharedPreferences
implementation("androidx.security:security-crypto:1.1.0-alpha06")
// Compose UI 基础(通常已随 BOM 引入,但可显式声明)
implementation("androidx.compose.ui:ui")
implementation("androidx.compose.ui:ui-graphics")
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")
}
⚠️ 版本选型注意:
security-crypto:1.1.0-alpha06 为 alpha 版本,生产环境可选用 1.0.0 稳定版(但 1.0.0 不支持 Compose 敏感数据绑定,本课程使用 alpha 版以获取最新 API 支持)。请根据实际需求权衡。
2.4 依赖关系与编译流程
下图展示了项目依赖的层级结构:Compose BOM 作为中央版本管理器,向下注入 material3 和 security-crypto 的精确版本;Android Studio 通过 Gradle 编译插件链将代码与资源打包成 APK。
2.5 常见错误与解决方法
- BOM 重复声明:多个模块重复引入 BOM 会导致版本冲突。建议仅在 app 模块的
build.gradle.kts中声明 BOM,子模块通过api(platform(...))传递。 - Kotlin 编译器扩展不匹配:BOM 版本与 Kotlin 编译器扩展版本必须一致。若升级 BOM,同时更新
kotlinCompilerExtensionVersion(在composeOptions中)。 - security-crypto 与 Compose 版本冲突:alpha06 版本依赖 Compose 1.5+,请确保已通过 BOM 锁定 Compose 版本。
✅ 验证步骤:
- 同步 Gradle 后查看 Build Output,确认无红色错误。
- 在 Activity 中尝试导入
androidx.security.crypto.EncryptedSharedPreferences,确认 IDE 可识别。 - 运行一个空 Compose Activity 测试 Material3 组件渲染是否正常。