Skip to content

Play Core Maven 依赖更新适配 Android 14

问题背景

当您的应用目标 SDK 版本升级到 Android 14 (API 34) 后,在 Google Play 控制台中可能会收到以下警告:

text
Update your Play Core Maven dependency to an Android 14 compatible version! 
Your current Play Core library is incompatible with targetSdkVersion 34 (Android 14), 
which introduces a backwards-incompatible change to broadcast receivers to improve user security. 
As a reminder, from August 31, Google Play requires all new app releases to target Android 14. 
Update to the latest Play Core library version dependency to avoid app crashes.

这是由于 Android 14 对广播接收器进行了重大变更以提高安全性,而旧版 Play Core 库(1.10.3 及之前)与这些变更不兼容。若不及时处理,应用在 Android 14 设备上可能发生崩溃。

解决方案概述

Google 已将 Play Core 库拆分为多个独立的功能模块,需要根据应用实际使用的功能进行依赖迁移:

功能模块Kotlin 依赖Java 依赖
应用内更新com.google.android.play:app-update-ktx:2.1.0com.google.android.play:app-update:2.1.0
应用内评价com.google.android.play:review-ktx:2.0.1com.google.android.play:review:2.0.1
资产分发com.google.android.play:asset-delivery-ktx:2.1.0com.google.android.play:asset-delivery:2.1.0
功能模块分发com.google.android.play:feature-delivery-ktx:2.1.0com.google.android.play:feature-delivery:2.1.0

重要提示

Google Play 要求从 2024 年 8 月 31 日起,所有新应用必须针对 Android 14(targetSdkVersion 34)开发

分步骤解决方案

步骤 1:移除旧版 Play Core 依赖

在应用模块的 build.gradle 文件中移除废弃的依赖项:

groovy
dependencies {
    // 移除以下过时依赖
    implementation 'com.google.android.play:core:1.10.3'
    implementation 'com.google.android.play:core-ktx:1.8.1'
}

步骤 2:添加所需的功能模块依赖

根据应用实际功能需求添加对应的新依赖:

groovy
dependencies {
    // 应用内更新功能 (Java 使用 app-update)
    implementation 'com.google.android.play:app-update:2.1.0'
    // Kotlin 扩展版本
    implementation 'com.google.android.play:app-update-ktx:2.1.0'
    
    // 应用内评价功能
    implementation 'com.google.android.play:review:2.0.1'
}

最佳实践

  • 仅添加实际使用的功能模块依赖
  • 使用 implementation 而非 api 限制依赖传递
  • 支持库版本会持续更新,请定期检查最新版本

步骤 3:更新 Task 导入语句

在 Java/Kotlin 代码中将失效的 Task 导入替换为兼容版本:

java
// MainActivity.java 或其他使用 Play 核心的位置
// 替换前
import com.google.android.play.core.tasks.Task;

// 替换后
import com.google.android.gms.tasks.Task;

步骤 4:检查并解决传递依赖问题

常见问题根源

许多第三方库仍依赖旧版 Play Core

检查方法

  1. Android Studio 中:File → Project Structure → Suggestions
  2. 选择 app 模块查看警告
  3. 通过 “View Usage” 分析具体依赖路径

终端检查(适合混合开发)

进入 Android 项目根目录执行:

bash
cd android  # 混合应用项目中的 android 子目录
./gradlew app:dependencies > dependencies.txt

搜索生成的 dependencies.txt 文件内容:

text
+--- project :some-plugin
|    \--- com.google.android.play:core:1.10.3

处理方案

  1. 更新插件/库:联系插件作者或更换备选方案
  2. 移除冲突依赖:确认功能必要性后可移除
    bash
    cordova plugin remove cordova-plugin-apprate  # Cordova 示例
  3. 手动升级:导航库用户可升级到兼容版本
    groovy
    // 原导航库
    implementation "androidx.navigation:navigation-fragment-ktx:2.7.7"
    // 升级到兼容 Android 14 的版本
    implementation "androidx.navigation:navigation-fragment-ktx:2.8.0-beta06"

迁移后验证

  1. 重新构建项目确认无编译错误
  2. 运行 ./gradlew app:dependencies 检查无旧版 Play Core 引用
  3. AndroidManifest.xml 中确保 uses-sdk 设置正确
    xml
    <uses-sdk
        android:minSdkVersion="21"
        android:targetSdkVersion="34" />
  4. 实际测试各 Play Core 功能(应用内更新、评价等)

通过以上步骤迁移后,您的应用将兼容 Android 14 的安全变更要求,满足 Google Play 新应用上架规范,并避免潜在的运行崩溃问题。