Android Market 2.3 Force Close / Crash


I was stumped by this issue for a long time and was only recently able to find the solution using the Android SDK’s “adb logcat” function to reveal the system logs.

Essentially, you try to install or update an app from the Android market, and it crashes with a force close message. Reading around on the forums over at xda-developers.com and other places suggest the following:

Proposed Solution #1
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Uninstall” to uninstall updates, essentially roll back the version to the one that came with your ROM.

Proposed Solution #2
Settings -> Applications -> Manage Applications -> All -> Market :: Hit “Clear Data” and “Clear Cache”

Proposed Solution #3 (mailny for cyanogenmod or ROMs that don’t come with the Google apps installed)
Boot into recovery and reinstall the gapps zip file.

Proposed Solution #4
Search for the Market app’s apk file and install it using “adb install -r appname.apk”. Make sure you have Settings -> Applications -> Install from Unknown Sources enabled.

Proposed Solution #5
Wipe all data / factory reset. Obviously #sadface. Or #angryface.

I tried all of the suggested solutions above, except the full reset. Obviously should be something that doesn’t require that drastic of a change… but none of the other solutions worked. So I turned on usb debugging, ran “adb logcat”, and then reproduced the market force close / crash. Deep in the hundreds of lines of code, I found this:

E/AndroidRuntime( 2975): FATAL EXCEPTION: Download Service
E/AndroidRuntime( 2975): java.lang.SecurityException: Requires VIBRATE permission

What the hell? Yes, I thought the same thing… Why does the market place require vibrate permissions? For notifications maybe… but even more interesting is the fact that the vibrate permissions are required for com.android.media (the music player), which force closes before the market app.

The solution? I had a profile that turned vibrations off for the default “Media” apps group (be default it only has the Music app in it). Switching it to “No override” fixed the crashing / force close issue in a jiffy.

What’s up with this funky fix? And why does the Android Market need to call the Music app with vibrate permissions? Beats me… too bad Google’s apps are closed source.

EDIT: Known affected Market versions (by me), as of writing: 2.3.2, 2.3.3, 2.3.4.

24 thoughts on “Android Market 2.3 Force Close / Crash

  1. This is the best blog post I have ever read. I cannot believe that this is the only place where one can find this solution. I had modified my profiles while trying to get my ringtones the way I wanted them, and couldn’t figure out that that coincided with my problem until reading this. Fantastic, many thanks, and email me your bitcoin receive address if you want props 🙂 -ea

    1. see my reply to the comment below yours. also – if the media group isnt present you can create one and add the market app to it.

  2. “The solution? I had a profile that turned vibrations off for the default “Media” apps group (be default it only has the Music app in it). Switching it to “No override” fixed the crashing / force close issue in a jiffy.”

    Sorry for being a noob, but how exactly do you do this?

    1. You must be running CyanogenMod 7.x. From the home screen, press [Menu] then tap “Settings”, then “Profiles”. Tap the profile you’re currently using, then tap the “Media” apps group. If it isn’t listed, you can create your own app group and place the Market app in it.

  3. Just wanted to add my thanks to the comments, was about to do my second factory reset, after having set-up the profiles exactly the same way as I did during last weekend, which prompted the problem when I tried to update some apps at “work”. Great work!

  4. Someone I work with visits your site regularly and recommended it to me to read as well. The writing style is great and the content is interesting. Thanks for the insight you provide the readers!

  5. omg thank you so so so much! you saved me from another hard reset! did exactly as instructed and I finally can use my market again ! I don’t know how but it works! of course it has to play notification sound twice before I could actually download something but a little annoyance (unless you have some solution? ) is better than not being able to use the market at all! thanks once again!

  6. I try to follow your directions but none of it makes any since. Does this mean that the next step is to throw the phone at the wall?

  7. I ran logcat too and this is what my market says. It’s probably uncompatibility between my rom and the market. Downgrading solved the problem.

    V/SignatureCheck(23687): Fixed by seo, patched by Robocik
    D/AndroidRuntime(24838): Shutting down VM
    W/dalvikvm(24838): threadid=1: thread exiting with uncaught exception (group=0x4
    0028a20)
    E/AndroidRuntime(24838): FATAL EXCEPTION: main
    E/AndroidRuntime(24838): java.lang.NullPointerException
    E/AndroidRuntime(24838): at com.google.android.vending.remoting.api.Vendi
    ngApi$CountriesConverter.onResponse(VendingApi.java:368)
    E/AndroidRuntime(24838): at com.google.android.vending.remoting.api.Vendi
    ngApi$CountriesConverter.onResponse(VendingApi.java:359)
    E/AndroidRuntime(24838): at com.google.android.vending.remoting.api.Vendi
    ngRequest.deliverResponse(VendingRequest.java:144)
    E/AndroidRuntime(24838): at com.google.android.vending.remoting.api.Vendi
    ngRequest.deliverResponse(VendingRequest.java:42)
    E/AndroidRuntime(24838): at com.android.volley.ExecutorDelivery$ResponseD
    eliveryRunnable.run(ExecutorDelivery.java:88)
    E/AndroidRuntime(24838): at android.os.Handler.handleCallback(Handler.jav
    a:587)
    E/AndroidRuntime(24838): at android.os.Handler.dispatchMessage(Handler.ja
    va:92)
    E/AndroidRuntime(24838): at android.os.Looper.loop(Looper.java:143)
    E/AndroidRuntime(24838): at android.app.ActivityThread.main(ActivityThrea
    d.java:4914)
    E/AndroidRuntime(24838): at java.lang.reflect.Method.invokeNative(Native
    Method)
    E/AndroidRuntime(24838): at java.lang.reflect.Method.invoke(Method.java:5
    21)
    E/AndroidRuntime(24838): at com.android.internal.os.ZygoteInit$MethodAndA
    rgsCaller.run(ZygoteInit.java:858)
    E/AndroidRuntime(24838): at com.android.internal.os.ZygoteInit.main(Zygot
    eInit.java:616)
    E/AndroidRuntime(24838): at dalvik.system.NativeStart.main(Native Method)

    W/ActivityManager(23687): Force finishing activity com.android.vending/.AssetB
    rowserActivity
    W/ActivityManager(23687): Activity pause timeout for HistoryRecord{456092b0 com.
    android.vending/.AssetBrowserActivity}

  8. Informative post! I might really listen to what you are trying to get out. Overall your whole blog is good… I am having fun with it. I have a Commentary site of my own… I will place a link back to your post. You don’t need to reciprocate, I just wanted to inform you as to what I was doing. Thanks!

  9. Sounds Cool and I have Sony ericsson X10i, which has no “profile” followed after tapping “[menu]” and “settings”, what should I do in this case? Thanks!

  10. Same here. I’m using acer liquid e running custom MIUI gingerbread 2.3.4, and there’s no profile option in the setting menu. Can you tell me what other option available in there, because maybe my version is using another name instead of profile.

  11. @June & @cool

    You pretty much *MUST* be using CyanogenMod. Or you can try using AudioManager, but given that your market is broken, you’ll need to find the .apk from somewhere. This second method is untested.

  12. I am using cyanogemod 7, however can’t find the “can create your own app group and place the Market app in it.” that you are talking about

  13. After fighting for hours trying all methods, I eventually deleted the sound “profiles” and now Market works as expected. I had never thought of that before coming to this post. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.