Unity 6000.3.0f1 – Google Play rejects AAB due to 16 KB memory page size (AGP ≥ 8.5 already in use)

Hello,

I’m encountering a release-blocking issue with Unity 6000.3.0f1 when uploading an Android App Bundle to Google Play, related to the 16 KB memory page size requirement.

Environment

  • Unity: 6000.3.0f1
  • Backend: IL2CPP
  • Build format: Android App Bundle (.aab)
  • Android Build Tools: 35.0.0
  • Target SDK: 34 / 35
  • Android Gradle Plugin (AGP): 8.10.0 (confirmed during build output)
  • Architecture: arm64-v8a
  • Native plugins: Firebase (Analytics, Messaging), OpenCV for Unity

Google Play error

Play Console rejects the uploaded AAB with an error indicating that the app:

Does not support 16 KB memory page size

Additionally, Play Console suggests upgrading the Android Gradle Plugin to ≥ 8.5, even though the project is already built with AGP 8.10.0.

  1. Has anyone successfully uploaded an AAB built with Unity 6000.3.0f1 that passed the 16 KB memory page size check?
  2. Is there a known issue in Unity 6000.x where native libraries are not aligned or packaged correctly for this requirement?
  3. Could Play Console be mis-detecting compliance due to Unity’s generated bundle structure?

Hey there, 6000.3.0f1 is fully 16KB supported (docs). Please, make sure you all third-party libraries you are using are on the latest available version and are also 16 KB aligned.

To check which libraries might be causing your issue, Open your .apk/.aab with Android Studio (ApkAnalyzer).

Hi,

Thank you for the response.

I understand that Unity 6000.3.0f1 is officially stated as 16 KB supported. However, after analyzing the generated binaries with Android Studio APK Analyzer, I am still seeing 4 KB LOAD section alignment for multiple native libraries.

Specifically, in the arm64-v8a split APK, the following libraries are reported as:

4 KB LOAD section alignment, but 16 KB is required

This includes:
• libil2cpp.so
• libunity.so
• libc++_shared.so
• libmain.so
• libburst_generated.so
• libswappywrapper.so
• libFirebaseCppApp-*.so
• libFirebaseCppAnalytics.so
• libFirebaseCppMessaging.so
• libopencvforunity.so

The issue is not ZIP alignment — it is ELF LOAD segment alignment. Even core Unity libraries such as libil2cpp.so and libunity.so show 4 KB alignment.

Configuration details:
• Unity version: 6000.3.0f1
• Scripting backend: IL2CPP
• Target architecture: arm64-v8a
• Android Gradle Plugin: 8.10.0
• buildToolsVersion: 36.0.0
• packaging.jniLibs.useLegacyPackaging = false

Given that core Unity-generated libraries (libunity.so and libil2cpp.so) are reported as 4 KB aligned, this does not appear to be caused solely by third-party libraries.

Could you please clarify:
1. Does Unity 6000.3.0f1 require any additional configuration to generate 16 KB page-aligned ELF binaries?
2. Is there a specific NDK version or linker flag required?
3. Is 16 KB LOAD segment alignment automatically handled in this Unity version, or only under certain conditions?

At this point, APK Analyzer consistently reports 4 KB LOAD alignment across all native libraries, including Unity’s own binaries.

Any guidance on how to force 16 KB ELF alignment in Unity would be greatly appreciated.

Thank you.

Can you share your .apk with us to inspect it further? You can send it to me through a private message.

Thanks.