Skip to content

Android 13以降でアプリが利用できません

Google Playストアでアプリをインストールしようとした際、「このアプリはAndroidの旧バージョン用に作成されたため、お使いのデバイスでは利用できません」というエラーが発生することがあります。この問題は、主にアプリのターゲットAPIレベルが新しいAndroidバージョンに対応していない場合に発生します。


根本原因

この問題の主な要因は、Googleの更新ポリシーに起因します:

text
2022年11月1日より、最新Androidリリースの2年以内のAPIレベルをターゲットとしていないアプリは、
そのアプリのターゲットAPIレベルよりも新しいAndroidを搭載したデバイスで
新規ユーザーが利用できなくなります。

(公式ポリシー通知)

具体的には:

  • ターゲットAPIの期限切れtargetSdkVersionがAndroid 12(API31)未満の場合
  • アプリビルドの非互換性:内部テスト版と公開版のAPIレベル不一致
  • ユーザーデバイスのOSバージョン:対象デバイスがアプリのターゲットAPIより新しい場合

効果的な解決策

1. ターゲットSDKの更新(主要対策)

build.gradleファイルを修正し、最新のAPIレベルを設定します:

groovy
android {
    compileSdkVersion 34 // 最新のSDKバージョンに更新
    defaultConfig {
        targetSdkVersion 34 // Androidの最新安定バージョンを指定
        minSdkVersion 21 // 維持する最小バージョン
    }
}

必須対応事項

  • 2023年8月以降:APIレベル31(Android 12)以上が必須
  • 推奨設定compileSdkVersiontargetSdkVersionは常に最新安定版を指定

2. Play Console設定の確認

  1. Play Consoleにログイン → [ポリシー]セクションを確認
  2. 「アプリはAPIレベル31以上を対象にする必要がある」 警告がないか検査
  3. 警告がある場合、更新後のAPKをリリースしないとユーザーに影響

3. 段階的ロールアウト(リスク軽減)

API更新による互換性問題を防ぐための戦略:

重要ポイント

  • 段階的更新:API変更後、トラックの切り替え時に新旧APKが混在するとエラー発生
  • 内部テスト回避策:本番環境でAPI31+のビルドを公開→古いAPKを無効化
  • 互換性検査:Google Playのプレリリースレポートでテスト実施
Play Consoleのポリシー設定画面

補足対策

互換性問題が残る場合の対応

  • Android Studioのアップデート(Java 11+対応必須)
  • プロジェクト全体でtargetSdkVersionを検索→全モジュール更新
  • 権限の移行処理(例:Android 13の通知パーミッション)

予防策

  • 2年サイクル:Googleポリシーを定期的に確認
  • 自動アラート:Play Consoleのポリシー通知をメール転送
  • betaテスト:新API導入前に実デバイス検証

これらの対策により、OSバージョンに関わらず全てのユーザーがアプリをインストール可能になります。特にtargetSdkVersionの更新は必須対応であり、遅滞なく実施することが重要です。