Skip to content
Guide

Solar2D and Google Play's 16 KB page size rule: find the library that fails

Short answerApps targeting Android 15+ must support 16 KB memory pages. Check every 64-bit library in your build, find the plugin that ships each 4 KB-aligned one, and update or remove it.

Updated 2026-10-19

What Google Play requires

Google's page size guide says that all apps targeting Android 15 (API level 35) and higher must support 16 KB memory page sizes on 64-bit devices on Google Play, and that from February 1, 2027 updates without 16 KB support can't be released. Apps whose native libraries are only 4 KB aligned can also crash on 16 KB devices.

Pure Lua code is not the problem. Native libraries are: the Solar2D engine itself and every plugin that ships a .so file.

Check your build

  1. Build the .apk or .aab as you would for the store.
  2. Open Ship Check Lite and drop the file on the page. It runs in your browser; nothing is uploaded. For offline use or CI, download it free from Solar2D Plugins.
  3. Read the 16 KB result. Each 4 KB-aligned library is listed with the plugin or SDK that ships it.
Ship Check Lite report listing 4 KB-aligned libraries with the plugin that ships each one
Each failing library, named by plugin

Fix what it finds

  • The Solar2D engine library fails: update Solar2D. Builds before 2025.3721 have no 16 KB engine libraries. Then rebuild.
  • A plugin's library fails: update or remove that plugin. A plugin whose maintainer has not rebuilt it with NDK r28 or newer (or -Wl,-z,max-page-size=16384) can't pass.
  • A library exists only as 32-bit: Google Play also requires a 64-bit version of every native library. Update or remove the plugin that ships it.
  • An uncompressed library is not 16 KB aligned inside the APK: rebuild with a current Solar2D, or run zipalign -P 16 -f -v 4 in.apk out.apk.

Check again after every plugin update. A build that passed once can fail when a plugin ships a new library.

What the check reads

Ship Check reads the ELF header of every .so file and the alignment of each LOAD segment. Libraries are matched to the Solar2D engine, all 358 plugins in the Solar2D plugin directory and common SDKs, so you see a plugin name instead of a file name.

FAQ

Does the 16 KB rule affect Solar2D games without native plugins?

The Solar2D engine itself is a native library. Builds from Solar2D 2025.3721 or newer have 16 KB engine libraries.

Can I check an AAB, not just an APK?

Yes. Ship Check Lite reads both .apk and .aab files.

More guides