Crashes and countermeasures due to non-compatibility of texture format ASTC on actual Android devices are serious technical bugs that frequently occur during actual device tests and rendering pipeline extensions. Explanation of the solution to a bug where the app forcefully closes the moment it enters a specific screen or production when running the game on an old Android smartphone.
Specific symptoms of the problem
While testing an app on an Android device, the moment a specific boss character appears or transitions to a specific high-definition 3D map, the screen goes black or the app completely closes (crashes) without any OS warning.
Real-world analogy: An accident in which an ultra-highly compressed instruction manual (ASTC) written in a foreign code was given to staff at an old branch (formerly GPU) who could not speak the language, resulting in confusion, causing everyone to abandon their jobs and abandon the workplace (crash)
Textures are delivered using a special compressed container (ASTC) that provides very high image quality and small data, but older smartphones (older GPUs) do not have the hardware brain to break the encryption, so the moment you try to open the image, you get a concussion and the app dies. Either prepare a standard format (ETC2) that even older staff can read, or take safety measures such as automatic translation (decompression).
Figure: Overview of crashes caused by texture format not supporting ASTC on actual Android devices, failure mechanism and resolution approach.
Assumed causes and detailed mechanism
The compression format of the imported textures is forcibly set to the modern standard "ASTC", but the GPU (hardware) of the old Android device being tested does not support ASTC decoding (decompression of compressed images), and crashes occur due to unauthorized access during GPU memory expansion.
Solution approach and optimization procedure
Open the "Texture Compression" setting in Project Settings and automatically apply "ETC2" or "ETC" as a fallback (alternative compression) for older Android devices that do not support ASTC, or correct the target-specific compression format settings in the import settings and build.