October 21, 2025

Ensuring Evergine Android Apps Stay Compatible with Google Play

Starting in late August 2025, Google Play will enforce new requirements for Android apps: all published apps must target Android SDK 35. This policy ensures that apps distributed through Google Play adhere to the latest Android security, performance, and privacy standards.

You can find the official requirements in official Google documentation.

To guarantee that Evergine developers can continue publishing their Android applications without interruptions, we have implemented key updates in our templates and native dependencies. These changes allow projects built with Evergine to remain compliant with current and upcoming Android platform policies.

Updating Evergine Templates to .NET 9

The first step toward meeting these new requirements has been updating Evergine’s Android and MAUI templates to target .NET 9.

This upgrade enables developers to properly compile and publish applications that target Android SDK 35, something that is not fully supported under .NET 8. With this change, Evergine projects benefit from enhanced compatibility with the latest Android toolchains and a smoother developer experience when preparing builds for the Play Store.

It is worth noting that not all Android-based templates required this modification. Platforms such as Meta Quest and Pico XR, which deploy applications directly to their devices without going through Google Play, are unaffected by these SDK targeting rules. Their templates will continue to function as before.

Additionally, the Evergine core engine itself has not been migrated to .NET 9. Our strategy is to move to new runtime versions only when they reach LTS (Long-Term Support) status, ensuring long-term stability and predictability for production environments. Consequently, the full transition of the engine will take place when .NET 10 becomes the next LTS release.

These template updates represent a proactive step that allows Evergine users to prepare early for Google’s 2025 deadline while maintaining compatibility and stability across multiple Android environments.

New Restriction: 16 KB Page Sizes in Android 16

While performing these updates, we discovered another important change that will impact developers even sooner. Starting in November 2024, Android 16 will require all native libraries to use 16 KB memory page sizes.

This low-level change affects how binaries are built and aligned, and apps containing native code that do not meet this requirement will fail to start on newer devices.

During testing, several warnings appeared related to native dependencies used internally by Evergine and by external libraries. Some of the affected components included:

  • so, libShaderConductorWrapper.so, libnaga_to_csharp.so (from Evergine.HLSLEverywhere)
  • CognitiveServices.Speech.*.so (from Microsoft.CognitiveServices.Speech)
  • so (from SkiaSharp.NativeAssets.Android)
  • so (from Evergine.OpenAL)
  • so( from Evergine.Bindings.Draco)

These warnings indicated that some native binaries were not yet compiled with 16 KB page alignment, requiring us to review and update the relevant packages to ensure full compatibility with Android 16.

How We Addressed These Issues

To guarantee compliance with Android’s new technical requirements and maintain a smooth deployment experience for Evergine developers, we performed several updates and code reviews:

  • Updated SkiaSharp and Microsoft Cognitive Services Speech dependencies to versions containing properly aligned native binaries.
  • Updated the Bullet physics binding in Evergine to include recompiled libraries that meet 16 KB page size alignment.
  • Aligned the OpenAL library used in Android projects to follow the new binary layout specification.
  • Removed the dependency on Evergine.HLSLEverywhere from Android launchers. This package was never required on Android, as shader compilation on this platform is handled differently. HLSLEverywhere remains in use for desktop platforms such as Windows, where shaders are compiled dynamically at runtime.
  • Ensured future native libraries follow alignment standards. Newly integrated features, such as Evergine’s KTX texture support, are already being distributed with 16 KB–aligned binaries to guarantee compatibility from the start—whenever that feature includes Android platform support.

These measures not only ensure compatibility with Android 16 but also reduce unnecessary dependencies, resulting in cleaner, lighter, and more maintainable project structures.

Looking Ahead

With these updates, Evergine Android projects are now fully aligned with Google Play’s SDK 35 targeting policy and prepared for Android 16’s upcoming memory page requirements.
We recommend that all developers using Evergine update their project templates before submitting new app versions to Google Play. Doing so will minimize potential compatibility issues and ensure their applications continue to deliver a reliable experience on future Android devices.

Evergine remains committed to providing long-term support for industrial 3D and XR applications, ensuring that projects built today continue to run smoothly as mobile platforms evolve.

Sergio Escalada
Author
Sergio Escalada
Plain Concepts Research

Wait! Don't leave yet.

Sign up for our monthly newsletter to be updated on all the latest news, case studies, and more.

We don't send spam and you can unsubscribe at any time.