Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I'm trying to re-install a paid app from the Google Play Store I had previously installed before doing a system update.

The installation fails silently after downloading. (Other installs from the Market work fine.)

Where can I see a log of what went wrong?

My System is a CM10 nightly built, so there might be all kinds of problems. The app doesn't show up as previously installed in any OS app lists, but turns up as 'not installed, no backups' in the Titanium Backup list, so there must be some residues from the former installation left.

share|improve this question
    
Found a solution. in short: delete /data/data/com.name.apk/ . Will post as answer as soon as new-user-block is over. –  Chaos_99 Mar 27 '13 at 10:00
    
Have you installed it on the SDCard previously? Is any error message shown? The only way to check the logs that comes to my mind is using adb logcat (as most logcat apps can no longer access the full logcat with JellyBean without some additional handwork, due to changed security measures). –  Izzy Mar 27 '13 at 10:00
    
Our comments just crossed... This brings up another candidate, if one doesn't want to do that manually: SD Maid should ferret such "remains" and clean them up. –  Izzy Mar 27 '13 at 10:03
    
No, the app wasn't installed to SD. And thanks for the SDMaid link. Will try this out too. Might also clean out other stuff. –  Chaos_99 Mar 27 '13 at 14:23
    
That's correct. Shall I leave that for you to include it with your answer? –  Izzy Mar 27 '13 at 14:31

2 Answers 2

up vote 2 down vote accepted

To answer myself:

  1. Downloaded the .apk of the app on a PC with the help of the APK Downloader tool, and put it onto the phones SD card.
  2. Used Terminal application (part of CM10) to switch to root (su), then tried to install the downloaded .apk file via pm install com.name.apk

Got an error code: INSTALL_FAILED_UID_CHANGED, googled that and found a solution:

  1. Removed /data/data/com.name.apk/ folder completely via terminal
  2. Tried pm install com.name.apk again -> SUCCESS (Would probably also have worked with normal Play Store install.)

Seems that each app gets a unique UID on first install to manage its access rights on files and folders. If the system thinks it's the first install, it assigns a new one, then can't overwrite/delete old settings/data folders previously set with another UID.

share|improve this answer

Glad you've found a working solution! To make it easier for people being afraid of working with the terminal:

On the Google Playstore you can find the app SD Maid, which (amongst other things) can take care for "left-overs" of uninstalled apps, which it calls "corpses" (so the part relating to this is the "corpses finder"). To do so, it reads the list of installed apps from the package manager, and then checks for e.g. directories which should not be there:

SDMaid: Corpse Finder SDMaid: System Cleaner
SDMaid: "Corpse Finder" and "System Cleaner" (Source: Google Play; click images to enlarge)

In your case, you've uninstalled the "foobar" app, which has the "package-name" of "com.foobar.app". Reading the list of installed apps, SDMaid thus does not find it -- so the folder /data/data/com.foobar.app would be identified as "corpse" and offered for cleaning.

So the big pro for the "average user" here is not only that he can avoid the command line, but also does not need to figure out tha apps "technical name", as SDMaid does that itself. And as "nice-to-have", the app also brings a file manager, file searcher, app control (freezing apps etc), and more.

Last remark: your device must be rooted for SDMaid to work. But so it must if you want to manually remove that directory, as the su step in your own answer shows :)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.