3. Google Play Core 库引入:build.gradle 依赖配置与版本管理

Google Play Core 是 Android 官方提供的库,用于实现 Play 核心功能,包括 Split Install(动态功能模块下载)、In-app Updates(应用内更新)、In-app Reviews(应用内评价)等。本课程专注于 Split Install 能力,因此需要通过 build.gradle 正确引入该库,并进行合理的版本管理。

3.1 依赖配置:常规引入方式

在模块级 build.gradle 文件的 dependencies 块中添加以下依赖:

dependencies {
    // Google Play Core 库(推荐使用最新稳定版)
    implementation 'com.google.android.play:core:1.10.3'

    // 如果使用 Kotlin 协程或 LiveData 响应式 API,可额外引入
    implementation 'com.google.android.play:core-ktx:1.9.1'
}

对于 Split Install 功能,核心库 play-core 已经包含 SplitInstallManager 及其相关 API。play-core-ktx 是 Kotlin 扩展库,提供协程和 Flow 封装,可简化异步任务处理。

3.2 版本管理策略

版本号说明建议
1.10.3稳定版,支持 Split Install 1.5+,包含缺失模块检测、延迟安装等增强首选版本
1.9.1较老稳定版,兼容性更广,但缺少部分新 API若需兼容旧 Google Play 商店可用
1.12.0+预览版或实验版,可能包含重大变更仅测试环境使用,生产慎选
📌 版本对齐关键点:
  • Google Play Core 库的 API 与 Play 商店客户端版本有关。建议始终使用 最新稳定版(查看 Google 开发者文档 获取实时版本)。
  • play-core-ktx 的版本应与 play-core 主版本对应,避免 API 不兼容。
  • 如果项目中使用 splitcompat 进行基础模块化,需额外添加对应依赖,但 Split Install 只需要 Core 库。

3.3 启用 Split Install 功能

仅添加依赖还不够,还需要在 build.gradle 中明确启用 Split Install 支持:

android {
    defaultConfig {
        ...
        // 启用动态功能模块下载
        dynamicFeatures = [":feature_home", ":feature_profile"]
    }
}

// 配置 Play 商店分发
play {
    // 如果使用 Play 开发者 API 自动上传,可配置
    // track = "internal"
}
// 根项目 gradle.properties 文件(可选,用于统一版本)
playCoreVersion = "1.10.3"

// 然后在各模块的 build.gradle 中引用
implementation "com.google.android.play:core:$playCoreVersion"
💡 统一版本管理建议: 在项目根目录的 gradle.properties 中定义版本变量,或在 ext 块中声明,避免各模块依赖版本不一致。例如:
ext {
    playCoreVersion = '1.10.3'
    playCoreKtxVersion = '1.9.1'
}

3.4 Android App Bundles 与版本适配

Split Install 只对 Android App Bundle(AAB)格式生效。因此 build.gradle 中的签名配置必须使用 AAB 打包:

android {
    bundle {
        language {
            enableSplit = true
        }
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }
}

若项目仍使用 APK 打包,Split Install 将无法工作,需迁移至 AAB。

3.5 依赖引入流程:从 build.gradle 到运行时加载

Google Play Core 库引入流程 1. build.gradle 添加 Core 依赖 2. Gradle Sync 下载依赖库 3. 库集成至 APK/AAB Play Core AAR 4. SplitInstallManager 工厂方法创建实例 5. startInstall() 触发 Split Install 关键说明 版本管理必须与 Play 商店客户端版本一致,否则可能无法下载功能模块。

3.6 常见错误与排查

错误信息原因解决方案
java.lang.NoClassDefFoundError: com.google.android.play.core.splitinstall.SplitInstallManagerCore 库未正确引入或 ProGuard 规则遗漏检查 build.gradle 依赖;添加 ProGuard 保留规则 -keep class com.google.android.play.core.** { *; }
Missing Split Install capability设备上 Play 商店版本过低或 APK 格式未使用 AAB确保使用 AAB 打包;检查 Play 商店最低版本要求(建议 8.4+)
API 不兼容异常Core 库版本与 Kotlin 扩展版本不匹配统一版本号,使用同一大版本下的 play-core-ktx

3.7 性能与构建优化

🚀 优化建议:
  • 使用 implementation 而非 api 引入 Play Core 库,避免传递依赖污染。
  • 如果项目不使用 Kotlin,不要添加 play-core-ktx,减少无用的扩展类。
  • 在调试阶段可临时使用 debugImplementation 或 testImplementation 避免 release 包引入不必要功能。
  • 利用 Gradle 缓存:同一版本库在不同模块间共享,无需重复下载。

完成上述配置后,项目即可在运行时通过 SplitInstallManager 请求下载并安装动态功能模块。下一环节将深入 SplitInstallAsyncTask 的异步任务封装机制。