Android 14対応:Play Core依存関係の更新警告解決法
問題の説明
Google Play Consoleから以下の警告が表示されている場合:
WARNING
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(APIレベル34)のセキュリティ強化による下位互換性のない変更が影響しています。具体的にはBroadcastReceiver
の動作変更により、古いバージョンのPlay Coreライブラリを使用しているとアプリがクラッシュする可能性があります。
影響のある環境
targetSdkVersion
34 (Android 14) に設定しているネイティブアプリ(Java/Kotlin + XML/Jetpack Compose)- Play Core 1.10.3以前を使用しているアプリケーション
- ハイブリッドアプリ(Cordova等のフレームワークを使用)
解決方法の概要
Google Play Coreはモノリシックなライブラリから機能ごとに分割された構成に変更されました。以下の手順で適切に移行しましょう。
移行が必要な主な機能
機能 | 新しいライブラリ | KTX版 |
---|---|---|
アプリ更新 | com.google.android.play:app-update | app-update-ktx |
アプリ内レビュー | com.google.android.play:review | review-ktx |
アセット配信 | com.google.android.play:asset-delivery | asset-delivery-ktx |
機能配信 | com.google.android.play:feature-delivery | feature-delivery-ktx |
具体的な解決手順
ステップ1: 古い依存関係の削除
build.gradle
(Module: app)から古いPlay Core依存関係を完全に削除:
dependencies {
// 以下の古い依存関係を削除
implementation 'com.google.android.play:core:1.10.3'
implementation 'com.google.android.play:core-ktx:1.8.1'
}
複数モジュールの確認
マルチモジュールプロジェクトの場合、すべてのモジュールのbuild.gradle
を確認してください
ステップ2: 必要な機能ライブラリを追加
XMLによる例:
dependencies {
// アプリ更新機能が必要な場合
implementation 'com.google.android.play:app-update:2.1.0'
// アプリ内レビューが必要な場合
implementation 'com.google.android.play:review:2.0.1'
// Kotlin拡張(KTX)を使用する場合
implementation 'com.google.android.play:app-update-ktx:2.1.0'
implementation 'com.google.android.play:review-ktx:2.0.1'
}
Kotlin DSL (build.gradle.kts)の場合:
dependencies {
implementation("com.google.android.play:app-update:2.1.0")
implementation("com.google.android.play:app-update-ktx:2.1.0")
}
バージョン確認
最新の安定版を使用してください(公式リリースノートで確認可能)
ステップ3: コードのインポート修正
com.google.android.play.core.tasks.Task
を使用している箇所をすべて置換:
// 置換前
import com.google.android.play.core.tasks.Task;
// 置換後
import com.google.android.gms.tasks.Task;
インポートの重要注意
この修正を行わないとビルドエラーが発生します。プロジェクト全体で検索して変更してください
補足ケース別解決法
Android Studioのプロジェクト構造を使う方法
- File > Project Structure > Suggestions を開く
- 警告メッセージをクリック
- 「View Usage」で問題の依存関係を確認
- 更新可能なライブラリを選択しバージョンアップ
ハイブリッドアプリ(Cordova等)の場合
Cordovaプラグインが古いPlay Coreに依存しているケース:
# 問題のプラグインを特定して削除
cordova plugin remove cordova-plugin-apprate
ナビゲーションライブラリを使用している場合
androidx.navigation
関連のライブラリを更新:
// navigation-fragmentのバージョンアップ
implementation 'androidx.navigation:navigation-fragment-ktx:2.8.0'
移行後の動作確認
- プロジェクトをクリーンビルド:bash
./gradlew clean build
- Play Consoleの警告が消えるか確認
- アプリ内更新機能が正常に動作するかテスト
::: success 公式ガイド 完全な移行手順はGoogle公式移行ガイドを参照 :::
よくある質問
Q: すべての機能ライブラリを追加する必要がありますか?
A: 必要とする機能だけを選択的に追加できます。未使用のライブラリは含めないでください
Q: この変更を行わないとどうなりますか?
A: 2024年8月31日以降、新しいアプリバージョンをGoogle Playにリリースできなくなります
Q: サードパーティライブラリが古いPlay Coreを使っている場合は?
A: 以下のコマンドで依存関係を調査し、ライブラリの更新を要請してください:
./gradlew app:dependencies > dependencies.txt
この修正により、Android 14の新しいセキュリティ要件を満たし、Google Playへのアップロードが可能になります。プロジェクトの要件に応じて必要なライブラリのみを選択し、アプリの安定性を確保しましょう。