While installing application (actually reinstalling) I stumble upon strange problem with free space. The instalator was complainging that I don’t have enought free space, “… could not be installed. Free up some space and try again.”
That was strange because I had a lot of free space, more then 500MB on internall memory and over 15GB on external memory.
Log shows me this:
[cc lang=”text” escaped=”true” width=”100%” height=”100%”]
I/ActivityManager( 1104): START {dat=/sdcard/.estrongs/tmp/*.*.apk cmp=com.android.packageinstaller/.InstallAppProgress (has extras)} from pid 11175
I/ActivityManager( 1104): Displayed com.android.packageinstaller/.InstallAppProgress: +207ms
W/ActivityManager( 1104): No content provider found for permission revoke: /sdcard/.estrongs/tmp/*.*.apk
I/PackageManager( 1104): Running dexopt on: com.*.*.*
I/ActivityManager( 1104): Force stopping package com.*.*.* uid=10122
E/installd( 1010): Couldn’t move /data/dalvik-cache/data@app@com.*.*.*-1.apk@classes.dex: No such file or directory
I/PackageManager( 1104): Removing non-system package:com.*.*.*
E/PackageManager( 1104): Couldn’t rename dex file: /data/app/com.*.*.*-1.apk
I/ActivityManager( 1104): Force stopping package com.*.*.* uid=10122
[/cc]
Looking at the log It seams to me that the ProviderInfo, from the ComponentInfo class, can’t access any information regarding packet that this orphan .odex file belongs to. So it can’t get permission to remove/move this file and hence error.
In nutshell, as I’m beginer at the android sdk, installer can’t find .apk for this .odex file. And of course .odex is the same file that currently installed packet will replace so installer can’t perform upgrade or uninstall action as .apk, for that .odex file, don’t exist any more.
Here arise the question: why there is this orphanage file in the first place?
Answer is simple, LuckyPatcher, at least in my case! I used it earlier to remove google ads and then uninstalled apk. After some time I decided to install it again. Odex was modified and not removed during previous uninstall. And during new installation this error show up. I want note here that LuckyPatcher allows to remove modified odex, but I just forget to do that.
Remedy is to simply remove .odex file.
If You use LuckyPatcher then You device is root’ed, so there is no problem with removing appropriate file from:
[cc lang=”cpp” escaped=”true” width=”100%” height=”100%”]
/data/app/[fileName].odex
[/cc]
If You don’t have root, then probably this error should never come up, at least not when there is still a free space. In worst case scenario resetting to the default (factory reset) should fix this, or going to the recovery mode and doing wipe for the cache/devil partition.