项目环境搭建: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。

项目依赖结构图 Android Studio Gradle 构建系统 Compose BOM (2024.02.00) material3 (1.2.0) security-crypto (1.1.0-alpha06) 应用 APK 说明:BOM 统一控制 material3 与 security-crypto 的版本,Gradle 根据配置完成编译打包。

2.5 常见错误与解决方法

  1. BOM 重复声明:多个模块重复引入 BOM 会导致版本冲突。建议仅在 app 模块的 build.gradle.kts 中声明 BOM,子模块通过 api(platform(...)) 传递。
  2. Kotlin 编译器扩展不匹配:BOM 版本与 Kotlin 编译器扩展版本必须一致。若升级 BOM,同时更新 kotlinCompilerExtensionVersion(在 composeOptions 中)。
  3. security-crypto 与 Compose 版本冲突:alpha06 版本依赖 Compose 1.5+,请确保已通过 BOM 锁定 Compose 版本。
✅ 验证步骤:
  1. 同步 Gradle 后查看 Build Output,确认无红色错误。
  2. 在 Activity 中尝试导入 androidx.security.crypto.EncryptedSharedPreferences,确认 IDE 可识别。
  3. 运行一个空 Compose Activity 测试 Material3 组件渲染是否正常。