Most mobile devices have a limited max texture size. Desktop apps have access to much larger textures. Since the simulator runs on a desktop/laptop, it’s not unreasonable to find 8K or 16K max texture sizes. As mobile devices get larger screens, the max texture size on some of those devices are increasing as well, but it’s not uncommon to find your app being installed on older devices (in particular for Android) where that max texture size may be limited to 1024x1024. I don’t know that you’re running into an issue with us downsizing textures to 2048x2048 on Android, but without knowing what device it’s failing on. You didn’t specify that it was failing on a device until just a post or two ago. It would be really helpful to know the device and the version of Android it’s running.
One solution that you may be overlooking is Corona’s support for dynamic images. Because many people want their apps to run on older devices, we provide a mechanism where you can include different resolution images and Corona will select the best version to use based on the device’s screen size. For instance, you might want to provide your sprite sheet in 3 sizes, normal which would have 128x128 frames, an @2x version that would have 256x256 frames and an @4x version that would have the 512x512 images. This is controlled in your config.lua, but you also have to specify the actual width/height of the entire sheet in your image sheet options in addition to the frame width and height.
On to a different but related subject, as @roaminggamer suggested, your sprites are not packed very tightly. There is a lot of empty space around each one. Do you need that? or can you pack them tighter. If they are 512x512, I’d bet you could trim them down to 256x256 just by cutting out all the empty space.
Between optimizing the packing and using dynamic images you can likely address this on most all devices.
Rob