2. 开发环境搭建与依赖配置

本章搭建完整的开发环境,确保 Android Studio、Gradle 及各库版本兼容。正确配置依赖是后续实现持久化队列与 WorkManager 协作的基础。

2.1 环境要求

工具 / 参数推荐版本说明
Android StudioHedgehog (2023.1.1) 或更高内置 AGP 8.2+,支持 KSP
Gradle8.2 以上配合 AGP 8.x 使用
JDK17Android Studio 内置,也支持手动配置
minSdk26 (Android 8.0)WorkManager 最低要求 14,推荐 26 以使用 JobScheduler
targetSdk34 或当前稳定版确保运行时权限和后台限制正确
提示:minSdk 若低于 26,WorkManager 会回退到 AlarmManager + BroadcastReceiver,长期任务可靠性下降。实战项目建议从 26 起步。

2.2 Gradle 仓库与插件版本

在项目级 settings.gradle.kts 中添加必要仓库(已默认包含 google() 和 mavenCentral()),确保能拉取最新依赖。

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

项目级 build.gradle.kts 声明插件版本(以 KSP 为例,Room 推荐使用 KSP 而非 kapt,提升编译速度):

// project/build.gradle.kts
plugins {
    id("com.android.application") version "8.2.2" apply false
    id("com.google.devtools.ksp") version "1.9.22-1.0.17" apply false
}

2.3 模块级依赖注入

在 app 模块的 build.gradle.kts 中引入 Room、WorkManager 和 Moshi 的依赖。同时启用 KSP 作为 Room 的注解处理器。

// app/build.gradle.kts
plugins {
    id("com.android.application")
    id("com.google.devtools.ksp")
}

android {
    namespace = "com.example.persistentqueue"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.persistentqueue"
        minSdk = 26
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
    }
    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }
}

dependencies {
    // Room
    val roomVersion = "2.6.1"
    implementation("androidx.room:room-runtime:$roomVersion")
    implementation("androidx.room:room-ktx:$roomVersion")
    ksp("androidx.room:room-compiler:$roomVersion")

    // WorkManager
    val workVersion = "2.9.0"
    implementation("androidx.work:work-runtime-ktx:$workVersion")

    // Moshi
    val moshiVersion = "1.15.1"
    implementation("com.squareup.moshi:moshi-kotlin:$moshiVersion")
    ksp("com.squareup.moshi:moshi-kotlin-codegen:$moshiVersion")

    // Coroutines (WorkManager 依赖)
    implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0")
}
版本陷阱:Room 2.6.x 要求 Kotlin 1.9.0+,WorkManager 2.9.x 要求 AndroidX Lifecycle 2.6+。务必同步检查 Kotlin 插件版本。若编译报错 ClassNotFoundException: androidx.room.…,请确认 KSP 配置正确且已应用插件。

2.4 各库版本兼容性速查

库推荐版本最小 Kotlin 版本配合 KSP 支持
Room2.6.11.9.0是
WorkManager2.9.01.8.0否(无注解处理)
Moshi1.15.11.8.0是 (moshi-kotlin-codegen)
Kotlin Coroutines1.8.0——

2.5 搭建流程示意

下图概括本章搭建过程:从 Android Studio 创建项目 → 配置 Gradle 仓库与插件 → 注入 Room/WorkManager/Moshi 依赖 → 构建成功。每个步骤对应清晰的依赖注入关系。

环境搭建与依赖注入流程 Android Studio (2023.1.1+) Gradle 8.2+ / AGP 8.2.2 (JDK 17, Kotlin 1.9.0+) Project 级:settings.gradle + 插件声明 (仓库源 + KSP 插件) Module 级 build.gradle.kts (Room, WorkManager, Moshi 依赖 + KSP) Room 持久层 WorkManager 调度 Moshi 序列化 minSdk ≥ 26 确保稳定性
关键验证:配置完成后,执行 ./gradlew :app:dependencies 可查看所有传递依赖树,确认 Room、WorkManager、Moshi 均以绿色显示且无冲突。若存在版本冲突,可强制指定版本:
// 在 dependencies 块内
implementation("androidx.room:room-runtime:2.6.1") {
    force = true
}