Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Insufficient Storage Available" even there is lot of free space in device memory

People also ask

Why does my phone say insufficient storage when I have space?

If you're seeing an "Insufficient storage available" message on your Android, chances are that you've used up most of your device's available memory. To rectify this, you'll need to make some space by deleting apps and/or media; you can also add external storage, such as a Micro SD card, to your phone.

How do I overcome insufficient storage on Android?

Open the Settings app, tap Storage (it should be in the System tab or section). You'll see how much storage is used, with details for cached data broken out. Tap Cached Data. In the confirmation form that appears, tap Delete to free up that cache for working space, or tap Cancel to leave the cache alone.

Why I can't install apps even though I have space?

Clear Cache In order to clear the cache on your smartphone, head over to Settings -> Storage. Wait for the storage to show up, and when it does, click on Cache. When you click on it, the Android OS will ask you if you really want to clear the cache on the device. Choose Yes and wait for a few seconds.


Here's a very simple solution that works on my Samsung Galaxy S II and Note 1; I have no idea about other models:

  1. Open the phone app and switch to keypad.
  2. Dial *#9900#
  3. On the screen that appears, click on the button labelled "Delete dumpstate/logcat".

I've restored about one GB of system space this way.


At first I tried Berislav Lopac's answer, but I got Connection problem or invalid MMI code. when I tried to dial *#9900#. I was using CyanogenMod on the phone, and I believe phones with custom ROMs don't use the stock dialer, so they lack the SysDump functionality.

Basically, Delete dumpstate/logcat in SysDump clears out the log files in /data/log. But you can also do this manually without SysDump. (This is assuming your phone has been rooted, which will be the case if your phone is running CyanogenMod or any other non-stock ROM.)

  1. Make sure Superuser and Terminal Emulator apps are installed. (They come with most custom ROMs.)
  2. Run Terminal Emulator
  3. Type in su, hit return.
  4. This will bring up a Superuser prompt. Grant access. (You will have to wait three seconds before you can click "Allow".)
  5. Change current directory by typing in cd /data/log, followed by return.
  6. MAKE SURE you are in the data/log directory by typing in pwd, followed by return. It should print out the present working directory you are in: /data/log. It is very important to make sure you are in the right directory as the next step removes all files in whatever working directory you presently are in.
  7. Remove all the files in the directory by typing in rm *, followed by return.
  8. Close the terminal window or app, or type in exit to leave the su session.

I deleted roughly 1,500 1 MB files like this and fixed my "Insufficient Storage Available" problem.

As with the other posters, I own a Galaxy S II, so it seems to be a problem with that model.

If anyone knows of the permanent solution to stop the log files building up, please let me know.

NOTE: Some file managers will falsely list /data/log to be empty as they are running unprivileged and hence lack the permissions to view the files inside.


The memory may be in reserve by the OS to be used for running what you normally run (kind of like a swap file). You may be able to squeeze in another app or two by

  • Trying to install them right after a restart, or
  • By force closing some apps that are running (but that second option may not be a good idea -- see the first link),

But the only very good fix might be to

  • Repartition your SD card so that apps can be installed directly to it (see the second link).

Take a look at forum post It was bound to happen: low memory warning!.

The important part is:

The OS knows how much memory it needs to run the apps you already have. This is a perfect example.

Now you may be able to "fool" the OS by force closing some apps that are sitting in RAM. This will increase your "bucket" of memory which may let you install an app, but remember if you do these types of things you will only cause issues down the road.. lagg, error messages, etc. (because you are fooling the OS in thinking you have given it additional memory which in fact you did.. you only force closed).

Another good explanation of what is happening is in forum post Low Internal Memory.

The important part is:

The reason why your internal space is filling up is 3-fold. First, when an app is "moved" to the SD card, it isn't completely moved. Only portions of it actually go. Second, the Dalvik cache of the app is still stored on the internal memory (which takes up a substantial amount of space). Three, the data for apps and all your system settings are stored in the internal memory (yes, some apps use the SD card for portions of their data, but every app has data stored on the internal memory).

And the thread includes suggestions on what partitioning you can do to your SD card to allow 'moar apps'!


The package manager (“installer”) has a design problem: it can’t distinguish between a bunch of possible errors and regularly comes up with the “insufficient storage” excuse.

The first steps are done: identify it’s an install problem (1.) and not related to storage shortage (2.)

  1. It happens on the console (pm install file.apk), with Google Play, other markets and manual GUI-install (for example, “clicking” on a downloaded APK file); it is not a download issue, ...
  2. Packages end up entirely on the /data partition -or- mostly on the SD card (and a little on /data). – Both places show enough space as indicated by the original poster (33 MB and >900 MB respectively) for the <20 MB package. –And– the /data partition has more than 10% free (33 MB is more than 10% of 200 MB).

Surprisingly most answers don’t take this into account...

In reality, the /data partition needs a cleanup from residues from previous installs.

  • Identify the common name of the problematic package (for example, com.abc.def)
  • Uninstall the package (for example, pm uninstall com.abc.def)
  • Check what’s left of it in data (for example, find /data -name 'com.abc.def*')
  • Delete that stuff

The installer chokes on those, returning with the wrong reason. – The interesting part is: if the package gets installed on the SD card (forced or by other means) some (all?) leftovers on /data don’t hurt... which leads to the false belief that it is indeed a space problem (more space on the SD card...)!

The Stack Overflow question where I got half of this from is Solution to INSTALL_FAILED_INSUFFICIENT_STORAGE error on Android.


The first thing to do is to check the details of the error message. For this you could use the LogCat App.

For me the problem was an error like

Cannot rename native library directory /data/app-lib/vmdl-... to /data/app-lib/com.xyz

The solution was to activate the common sense function in my brain and look for the com.xyz folder in the app-lib folder with ES-Explorer. I recognized that this folder was already there. So removing it solved the renaming problem and the apps can now install properly.