Quick answer: A game that crashes on Android but not iOS is hitting Android-specific conditions: Android's enormous device fragmentation (thousands of device models, chipsets, GPUs, and OS versions, versus iOS's small, uniform set), low-end Android devices with tighter memory, manufacturer-specific customizations and driver differences, and Android-specific behaviors. Capture device context to identify which Android devices crash and the constraint they share, then fix for that hardware, often a memory, GPU, or OS-version-specific issue.
iOS and Android are very different mobile platforms, and a game that's stable on iOS but crashes on Android is usually running into Android's fragmentation. Where iOS has a small, controlled set of devices, Android spans a vast range of hardware, OS versions, and manufacturer customizations, so Android-specific crashes that never appear on iOS (or your test devices) are common. Finding the affected Android devices is the key.
Why Android Crashes When iOS Doesn't
The core difference is fragmentation. iOS runs on a small, uniform set of Apple devices, so it's relatively easy to support; Android runs on thousands of device models from many manufacturers, with widely varying chipsets, GPUs, memory, OS versions, and manufacturer customizations. This fragmentation produces Android-specific crashes: device/GPU-specific bugs (a crash on a particular chipset or GPU that iOS's uniform hardware never hits), OS-version differences (behavior varying across the many Android versions in use), low-end-device memory pressure (many Android devices have less memory than current iPhones, causing out-of-memory crashes), and manufacturer customizations (some manufacturers modify Android in ways that cause issues).
So an Android-only crash is almost always tied to some slice of Android's fragmented ecosystem, a particular device, chipset, OS version, or memory class, that you don't have on iOS or your test devices. The crash is real for those Android users even though iOS (and maybe your test Android device) is fine.
How to Diagnose It
Device context is essential because of Android's fragmentation, you must know exactly which Android devices crash. Capture each Android crash with the device model, manufacturer, OS version, GPU, and available memory, then look for the pattern: do crashes cluster on certain device models, chipsets/GPUs, OS versions, or low-memory devices? That identifies the affected slice. An out-of-memory pattern on low-RAM devices points at the memory constraint; crashes on specific chipsets point at device/GPU-specific bugs; crashes on certain OS versions point at version differences.
Bugnet captures detailed Android device context with each crash and groups by signature, so an Android-only crash arrives correlated with the exact devices and constraint behind it, which is the only practical way to make sense of Android's fragmentation. Seeing that a crash hits, say, specific low-memory devices or one chipset turns 'crashes on Android' into a specific, fixable diagnosis, where the bare statement is unactionable.
How to Fix It
Fix for the identified Android constraint. For memory (low-end devices), reduce your memory footprint so it fits lower-RAM Android devices (smaller assets, less loaded at once), since Android's low-end devices have far less memory than the iPhones iOS targets. For device/GPU-specific crashes, add workarounds or fallbacks for the affected chipsets/GPUs (handle the unsupported feature or driver quirk). For OS-version differences, handle the behavior differences across Android versions you support. For manufacturer customizations, work around the specific problematic behavior.
Test on real low-end and varied Android devices, not just a flagship or an emulator, because the fragmentation issues (memory, specific hardware) only bite on the actual constrained/varied devices. After fixing, verify the Android crash clusters stop on the affected devices via version-tagged reporting. Treating Android as a fragmented platform requiring device-level diagnosis and testing across its range, rather than assuming iOS stability carries over, is what resolves Android-only crashes.
Android-only crashes are usually fragmentation, specific devices, GPUs, OS versions, or low memory that iOS's uniform hardware never hits. Capture detailed device context to find the affected slice, and test real low-end devices.