【Flutter対応】「アプリは 16 KB メモリのページサイズをサポートしている必要があります」
FlutterでAndroidアプリを公開しています。ある日突然Googleからこのような無慈悲なメッセージが届いた場合の対応方法です。
16KBメモリのページサイズとは
Google Play Consoleの問題の詳細ページからもリンクがありますが、こういうことだそうです。詳しい内容は割愛ですが、来たる16KBページサイズがサポートされてないアプリは2025年11月1日以降はアプリをリリースできないよということらしいです。
対応方法
やることは3つあります。
- AGP(Android Gradleプラグイン)のアップデート
- Gradleのアップデート
- NDK(Android Native Development Kit)のアップデート
AGPのアップデート
android/settings.gradle
にある次の箇所でバージョンが指定されているので、8.5.1以降に上げます。執筆時2025年9月16日時点では8.13.0が最新だったので、そのように指定しました。
plugins {
...
id "com.android.application" version "8.13.0" apply false
...
}
Gradleのアップデート
AGPとGradleのバージョンを合わせる必要がるので、先程指定したAGPに対するGradleのバージョンを確認します。
AGP 8.13の場合はGradleも8.13が必要なようです。足りてなかったので、以下のコマンドでGradleのバージョンを上げます。
cd android
./gradlew wrapper --gradle-version=8.14.3
終わったら念の為クリーンしておきます。
./gradlew clean
NDKのアップデート
ビルドに使用するNDKをアップデートします。NDKが28以降であればデフォルトで16KB対応でコンパイルされるようです。28以降をAndroid StudioのSDK Managerでインストールします。
メニューの[Tools]-[SDK Manager]を起動して、[SDK Tools]タブのNDKの中から28以降のものをインストールします。(Show Package Detailsを✅️すると出てくると思う)
(おそらくflutterのバージョンごとにデフォルトのNDKバージョンが異なると思うのでいずれは不要になるかもしれないですが)インストールしたNDKを使用してビルドするように、build.gradleを編集して、バージョンを指定します。
android {
...
ndkVersion = '28.2.13676358'
...
あとはflutter clean
してビルドし直すといけるはず。
確認
コマンドラインから確認できるツールもあるみたいですが、私は内部テストリリースを作成して確認しました。App Bundleファイルをアップロードしたら、aabの詳細画面から確認できます。
Discussion
記事で述べられている対応内容に加えて、私の場合は以下も必要でした。
package 更新
a. package verの最新化
b. 数年単位で更新のないpackageは他のものにreplace
外部ネイティブSDK 更新
a. ekyc関連などネイティブSDKを直接PJに取り込む場合があります。その場合は、SDK配布元に連絡等が必要です。