Hi everyone,
I am facing a critical startup crash on an Android device running Android 16 (One UI 8.5) with an Exynos chipset (Samsung Galaxy A57). The exact same packaged build runs perfectly without any issues on Snapdragon devices (tested on Galaxy A71 and S26 Ultra).
Symptoms:
When launching the app, the Unreal Engine splash logo appears briefly, and then the app crashes/shuts down immediately without any pop-up or on-screen error dialog.
Environment & Setup:
- Engine Version: Unreal Engine 5.8 (Hotfix 5.8.2)
- Renderer: Mobile Forward Shading (r.Mobile.ShadingPath=0, r.MobileHDR=False)
- Target SDK: 34 (also tested with 36)
- Min SDK: 28 (also tested with 26)
- NDK Version: NDK r27b (27.2.12479018)
- Packaging Config: Tested both Shipping and Development
- Data Packaging: Package game data inside .apk enabled
Relevant Logcat Output (adb logcat *:E):
Right at startup, the app attempts initialization and then dies around onCreateBody / native loading:
E pageboostd: alp start : app comDarkMazeStudionextrooms
E perf_hint: Session ID too large, must fit 32-bit integer
E PermissionHelper: GVRTransition2DActivity.getActivity() failed. Trying to get GameActivity.
E SwappyDisplayManager: dalvik.system.InMemoryDexClassLoader[...] couldn't find "libUnreal.so"
E InputDispatcher: channel '... com.DarkMazeStudio.nextrooms/com.epicgames.unreal.GameActivity' ~ Channel is unrecoverably broken and will be disposed!
E HYPER-HAL: [HandlerUClamp.cpp]set_uclamp_min(): sched_setattr failed for thread ..., err = -1
Things Already Attempted:
- Enabled/Disabled Vulkan (bSupportsVulkan=True/False) and OpenGL ES 3.2.
- Disabled Google Play Services (bEnableGooglePlaySupport=False).
- Verified [OnlineSubsystem] DefaultPlatformService=Null.
- Disabled Swappy frame pacing (a.UseSwappyForFramePacing=0, r.Android.DisableSwappy=1).
- Disabled PSO Precaching (r.Vulkan.EnablePSOPrecache=0, r.PSOPrecache.Enable=0).
- Disabled relocation compression (Enable compression of relocation tables = False).
- Re-parented widgets and cleaned Intermediate, Saved, and Binaries directories.
Despite all this, Snapdragon devices boot straight into the menu, while on this Exynos Android 16 device, the input channel breaks right after onCreateBody() and the process terminates.
Could this be related to 16KB page size kernel enforcement in Android 16, or an NDK / linker issue with libUnreal.so on this chipset/OS combination? Any guidance from the mobile engineering team would be greatly appreciated.
A note on Unreal Engine for Mobile:
On a side note, as an indie developer building for mobile, I truly believe Unreal Engine has immense visual and technical potential on mobile devices. However, Epic still has a long way to go to genuinely attract and retain mobile game developers.
The out-of-the-box fragmentation headaches, silent startup crashes on specific hardware/chipset combinations, and the steep troubleshooting curve often push indie mobile creators away to other engines like Unity or Godot. Improving out-of-the-box stability across diverse Android chipsets and providing clearer mobile diagnostics would go a very long way in making Unreal Engine the go-to choice for mobile developers worldwide.
Thank you!