Unable to install app. Storage space is running low error
I have recently pushed an update out for my application Chess Mates/Chess Mates Free. The application passed your smoke tests but I have received emails saying that when installing on the Kindle Fire (Gen 1) they are getting the following error. Cannot Install Chess Mates Free cannot be installed. This may be because application storage space is running low. You can remove apps to free space. . . However I have check the devices have plenty of room for applications, the one I looked at was at 557MB of 1.17GB, so nearly 500MB free. My application is only 11MB so it should be able to install fine. How can I fix this or understand what is causing this issue?
Hello epicofchaos, What is most likely the case isn't that your device is running out of space, but rather your LinearAlloc heap is filling. Which is much more common on Android devices running on API level 10 such as the Kindle Fire first generation. You would see a log with LinearAlloc exceeded capacity in your ADB Logcat output. In Android 4.0 and above operating systems, the LinearAlloc ceiling was raised, which would explain why you aren't able to see this issue on other Android devices. Google has more information about this in their Issues site for the Android project:
https://code.google.com/p/android/issues/detail?id=22586 Facebook actually has a pretty detailed post about what they had to do in order to handle LinearAlloc problems for an older version of their Android app:
https://www.facebook.com/notes/facebook-engineering/under-the-hood-dalvik-patch-for-facebook-for-android/10151345597798920 One way you can work around the problem is to create a custom classloader and move portions of your apps dependencies into another dex file.Google describes the process here:
http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html Also, when using libraries such as multidex, or a custom classloader, you may want to make sure that your class hierarchies aren't too deep, otherwise even using the --set-max-idx-number= value within the dex step of your build process will not help.
https://code.google.com/p/android/issues/detail?id=78035 Or the easiest way would be to investigate what you added as a part of your update, and trying to simplify the class hierarchy and/or undo the changes specifically for the Kindle Fire 1st generation.