No, you misunderstand my meaning. You are definitely better off using as few images as possible, as I mention in my speeding up AppGameKit thread. You do not want to have a gagillion images in your folder, or memory for that matter. I just mean the actual subimage files are mostly not needed. If you have an image of 4x4 128x128 tiles, making your final image size 512x512 for instance. All you need to do to load the images in, is assign the image to the sprite, then use setspriteanimation(spriteID,128,128,16). Each frame would be 128x128 pixels, with a total of 16 frames. That would automatically break up your sprites image into the frames needed, without needing a subimage file to read at all. If you really need to cram the space then you would use a subimage, so you don't grab parts you don't want. Generally though, it is unnecessary.
Don't think of the sprite animation command only being useful for animations, I use it to break up tile maps and all sorts. I have recently made a basic Isometric engine using it for the floor tiles. Each floor type is a different frame. If animation is needed, it is just a matter of setting up the sprite so you use every 8(or as many as needed) frames for the base image, the rest being animation frames for each tile.
The error you are getting as I say is normally associated with array problems, not image issues. Odd you only get it when you exit the program though. Perhaps it is a bug in the version you are using? Best bet is to experiment, try remming out parts of your code to try to isolate which bit is crashing it.
Edit - If as you say it only crashes on one image, I would double check the code, typos can be hazardous to your health
Also the image, is it the same as the rest? Do you use power of 2 images, such as 128x128, or 512x512 or have you got odd sized images? The PC can normally cope with them, but you can get odd padding errors if you don't stick with power of 2 sprites, especially on phones etc.