16kb-pagesize-ja

16KBメモリのページサイズのサポート対応(Google Play)

Google Play ストア(Google Play)で公開しているアプリが「16 KBメモリページサイズに対応する必要がある」というお知らせについて、2025年11月1日まででしたが、対応したことを記載します。現在、申請することにより2026年5月31日まで延長が可能となっています。

16KBメモリのページサイズのサポート対応(Google Play)

1.公式ブログの記載について

私の場合は、Kotlinのみ・ネイティブ(NDK/C/C++)不使用のアプリのため以下を実施しました。

2. ビルド環境の確認

2-1. AGP(Android Gradle Plugin)バージョン

AGPバージョンの確認場所

① モジュール(例:app/)の build.gradle(.kts) → plugins { … } 方式

plugins {
  id("com.android.application") version "8.5.2"   
  id("org.jetbrains.kotlin.android") version "1.9.25"
}

② ルート settings.gradle(.kts) → pluginManagement { plugins { … } } 方式

pluginManagement {
  plugins {
    id("com.android.application") version "8.5.2"  
  }
}

③ バージョンカタログ(gradle/libs.versions.toml)方式

[plugins]
android-application = { id = "com.android.application", version = "8.5.2" }  

そして各 build.gradle(.kts) 側では:

plugins {
  alias(libs.plugins.android.application)   
}

(見つからない時の奥の手)
Android Studio → Tools > AGP Upgrade Assistant を開くと、検出した現在のAGPと推奨アップグレード先が表示されます。

AGPは、どのくらいに上げるのがバージョンにすべきか?

  • 8.6系以上に上げるのが無難
  • 理由:8.5.1+ で 16KB アライメント自動化対応ですが、8.6+ で API 35(Android 15)を正式サポートのため。

修正例(settings.gradle)
修正前:

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "8.1.0" apply false
    id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}

修正後:

plugins {
    id "dev.flutter.flutter-plugin-loader" version "1.0.0"
    id "com.android.application" version "8.6.1" apply false   // ← ここを更新
    id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}

2-2. Gradle Wrapper

AGPに対応する安定版(例:8.7 以降など、AGP要件に適合)へ
https://developer.android.com/build/releases/past-releases/agp-8-6-0-release-notes?

3. ネイティブ混入の最終確認

トランジティブ依存に.soが紛れていないか

  • Kotlin/Javaだけのつもりでも、外部AARが内部で.soを持つことがあります。
  • APK Analyzer(Android Studioの「Build > Analyze APK…」)でAAB/APKを開き、lib/arm64-v8a や lib/x86_64 配下に .so が無いことを確認。
  • もし.soが見つかった場合は、そのSDKが16KB整列対応版(NDK r28+やAGP 8.5.1+で再ビルドされたもの)に更新が必要です。

4. 実機/エミュレータ検証

4-1. Google APIs Experimental 16KB(arm64/x86_64)イメージで起動・動作すればOK

adb shell getconf PAGE_SIZE は、現在起動中のエミュレータ(または実機)で実際にページサイズが 16 KB になっているか確認するためのコマンドです。

実行手順(Mac / Windows 共通)
① まずエミュレータを起動
②ターミナル起動
③デバイスが認識されているか確認

adb devices

このような結果が出ればOK:

List of devices attached
emulator-5554   device

④ページサイズを確認

adb shell getconf PAGE_SIZE

複数のデバイスがある場合は、明示的に

adb -s emulator-5554 shell getconf PAGE_SIZE

結果。以下のように出れば 16 KB(= 16384 bytes)環境です。

16384

4-2. adb が見つからない場合

adb devices と入れて、command not found: adb と出た場合は、
adb が見つからない=SDK の platform-tools が PATH に通っていないのが原因です。
次のどちらかの方法で解決できます。

方法A:SDK のフルパスで一時的に実行

  1. SDK の場所を確認
    Android Studio → Settings/Preferences > Appearance & Behavior > System Settings > Android SDK
    上部の Android SDK Location を控えます(既定例:/Users/あなたのユーザ名/Library/Android/sdk)。
  2. フルパスで実行(例は既定パス)
/Users/$USER/Library/Android/sdk/platform-tools/adb devices
/Users/$USER/Library/Android/sdk/platform-tools/adb shell getconf PAGE_SIZE

エミュが複数ある場合は -s を付けます

/Users/$USER/Library/Android/sdk/platform-tools/adb -s emulator-5554 shell getconf PAGE_SIZE

16384 などと返れば 16KB 環境です。

方法B:PATH を通して恒久的に使えるようにする(おすすめ)

  1. SDK の場所を確認(方法Aの手順1と同じ)
  2. ~/.zshrc に追記
# Android SDK
export ANDROID_SDK_ROOT="$HOME/Library/Android/sdk"   // あなたの実パスに合わせて調整
export PATH="$PATH:$ANDROID_SDK_ROOT/platform-tools"
export PATH="$PATH:$ANDROID_SDK_ROOT/emulator"
  1. 反映
source ~/.zshrc
  1. 確認
which adb
adb version
adb devices
adb shell getconf PAGE_SIZE

5. Play Console 側の確認

16KBメモリのページサイズのサポート対応(Google Play)

関連記事