第2章 环境搭建与依赖引入

本章从零搭建 Material 3 权限对话框组件的开发环境,覆盖 Android Studio 配置、material3 库依赖声明、最低 SDK 版本设置以及运行时权限声明。完成本章后,你将获得一个可编译运行的基线项目。

2.1 开发工具配置

本项目采用 Android Studio(推荐 Arctic Fox 2020.3.1 或更高版本)作为 IDE。确保以下组件已安装:

  • Android SDK Platform 33+:用于编译 Material 3 组件。
  • Kotlin 插件 1.8+:推荐使用 Kotlin 编写业务逻辑。
  • Gradle 8.2+:与 AGP 8.x 配合确保依赖解析正确。
验证配置:在 Android Studio 菜单栏选择 File → Settings → Languages & Frameworks → Android SDK,确认 SDK Platforms 列表中包含 Android 13(API 33)或更高版本。

2.2 Material 3 库依赖声明

在项目级别的 build.gradle.kts(或 build.gradle)中,首先添加 Google 的 Material 依赖仓库(通常已默认存在):

// settings.gradle.kts
dependencyResolutionManagement {
  repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
  repositories {
    google()
    mavenCentral()
  }
}

在 app 模块的 build.gradle.kts 中添加 Material 3 以及 Compose 相关依赖(本课程使用 Jetpack Compose 实现对话框):

// app/build.gradle.kts
dependencies {
  implementation("androidx.compose.material3:material3:1.2.1")
  implementation("androidx.compose.ui:ui:1.6.7")
  implementation("androidx.compose.foundation:foundation:1.6.7")
  implementation("androidx.activity:activity-compose:1.9.0")
  implementation("androidx.lifecycle:lifecycle-runtime-compose:2.8.0")
  // 权限请求库 (Accompanist)
  implementation("com.google.accompanist:accompanist-permissions:0.34.0")
}
版本一致性:Material 3 与 Compose 版本需相互兼容。建议使用 官方版本对应表 检查。若使用较新版本,请同步更新 Kotlin 和 AGP 版本。

2.3 MinSDK 与权限声明

2.3.1 最低 SDK 版本

Material 3 对话框(尤其是权限对话框)要求 minSdk = 21(Android 5.0)及以上。在 app/build.gradle.kts 中设置:

android {
  compileSdk = 34
  defaultConfig {
    minSdk = 21
    targetSdk = 34
  }
}

2.3.2 AndroidManifest 权限声明

根据目标权限类型,在 AndroidManifest.xml 中声明运行时权限。例如,相机权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-permission android:name="android.permission.CAMERA" />
  <uses-permission android:name="android.permission.RECORD_AUDIO" />
  <!-- 其他权限 -->
</manifest>
关键说明:从 Android 11(API 30)起,部分权限(如 ACCESS_BACKGROUND_LOCATION)需在清单中同时声明前台权限和后台权限,否则运行时请求会静默失败。详情参考 官方权限指南。

2.4 环境搭建流程总览

下图概括了从 IDE 配置到运行时权限声明的完整链路:

环境搭建与依赖引入流程 1. Android Studio 配置 2. 添加仓库 & Kotlin 插件 3. Material 3 & Compose 依赖 4. minSdk=21, compileSdk=34 5. AndroidManifest 权限声明 ✨ 关键点 • AGP 8.x + Gradle 8.2+ • Kotlin 1.9+ 插件 ⚠️ 注意 • 版本兼容性矩阵 • minSdk 不低于21

2.5 常见错误与调试

错误现象 可能原因 解决方案
Cannot resolve symbol 'material3' 仓库未添加或依赖版本拼写错误 检查 settings.gradle.kts 中是否包含 google() 仓库,并确认依赖 artifact 名称正确
minSdk (1) cannot be less than 21 误将 minSdk 设为低于 21 将 minSdk 改为 21 或更高
INSTALL_FAILED_MISSING_PERMISSION 清单中未声明运行时权限 在 AndroidManifest.xml 中使用 <uses-permission> 添加对应权限
调试建议:首次编译时在终端执行 ./gradlew app:dependencies --configuration releaseRuntimeClasspath,检查引用的 Material 3 版本是否与 Compose 兼容。

2.6 性能与稳定性考量

  • 延迟初始化:权限对话框应在用户交互时触发,避免在 Activity 的 onCreate 中直接请求,防止 ANR。
  • 依赖精简:仅引入本课程所需的最小依赖集(material3、ui、foundation、activity-compose),避免使用过大的第三方权限库。
  • 清单冗余清理:移除不需要的 <uses-permission> 声明,降低应用被审核的风险。

至此,环境搭建与依赖引入工作全部完成。下一阶段将进入对话框组件的核心架构与布局设计。