https://forums.unrealengine.com/t/support-for-16kb-memory-page-size-on-android/2540775/14

Hello,
I am building a UE 4.27-plus Android Shipping project with NDK r28.1.13356709. The game works on recent Android versions, but crashes on Android 10 devices (mostly arm64; I also see the issue on armv7).
The failure occurs before the game starts:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “_Unwind_Resume”
referenced by “…/lib/arm64/libUE4.so”
I checked the produced binary:
readelf -Ws libUE4.so | grep _Unwind_Resume

UND _Unwind_Resume@LIBC_R
So _Unwind_Resume remains undefined in libUE4.so.
The packaged libc++_shared.so contains an _Unwind_Resume symbol, but it is LOCAL HIDDEN, so it cannot satisfy the dependency of libUE4.so at load time.
According to the NDK r28 documentation, LLVM libunwind must be linked after all static libraries and before shared/system libraries. UE 4.27’s Android toolchain currently puts SystemLibraries before project static libraries, so simply adding:
LinkEnvironment.SystemLibraries.Add(“unwind”);
does not produce the required order and does not resolve the issue correctly.
Could Epic confirm the intended official fix for UE 4.27-plus with NDK r28?
Suggested toolchain order:
object files → static .a libraries → -lunwind → shared/system libraries
This is not only a UE 4.27 issue. There are reports of the same _Unwind_Resume Android 10 loader failure in newer Unreal versions in this thread as well, including a UE 5.7 project updated from UE 5.6:

Could this be fixed in the shared Android toolchain implementation, rather than requiring projects to patch AndroidToolChain.cs manually?

I also noticed a possible NDK version mismatch in the GooglePAD plugin.

In UE 4.27-plus, the plugin Build.cs uses:

string NDKVersion = “ndk23.0.7599858”;

but Engine/Plugins/Runtime/GooglePAD/Source/GooglePAD/GooglePAD_APL.xml contains:

<setString result="NDKVersion" value="ndk21.4.7075529" 
Is this intentional?

GooglePAD may build or package native Play Core components using NDK r21 while libUE4.so is built with NDK r28. Could this mixed-NDK setup contribute to unwind/runtime compatibility problems on older Android versions, or should the APL value be updated to the same supported NDK version as the plugin Build.cs?@dmswea Please, bro, check it, it’s important, i think a huge bug here