Android Emulator: Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
I am currently trying to compile and test a small Android Application.
I am using Eclipse, and have SDK 4.2 (Api Level 17) installed. I've set
<uses-sdk android:targetSdkVersion="17" android:minSdkVersion="8" />
although I've tried also different values (i.e. 17/17).
I do not use any GoogleAPI functions, nor do I use functions that are not available in API Level 8. Or at least I do not get any compile errors or warnings in that regard.
When I compile the project and run it on a real device running Android 2.2.1 the Application runs fine. However when I try to run the application on an emulator (Android Virtual Device) with Android 4.2, Api Level 17 I get the following error:
[2012-12-10 21:10:29 - SoftKeyboard] Installation error: INSTALL_FAILED_VERSION_DOWNGRADE
[2012-12-10 21:10:29 - SoftKeyboard] Please check logcat output for more details.
[2012-12-10 21:10:29 - SoftKeyboard] Launch canceled!
Logcat however is empty. I have really no clue, what this error even means...
Solution 1:
It means you're trying to install an app with the same packageName as an app that's already installed on the emulator, but the one you're trying to install has a lower versionCode (integer value for your version number).
You might have installed from a separate copy of the code where the version number was higher than the copy you're working with right now. In either case, either:
uninstall the currently installed copy
or open up your phone's Settings > Application Manager to determine the version number for the installed app, and increment your
<manifest android:versionCode
to be higher in the AndroidManifest.or https://stackoverflow.com/a/13772620/632951
Solution 2:
You can also consider adding -d
flag to adb install. It should ignore this error.
adb install -r -d abc.apk
Solution 3:
First uninstall your application from the emulator:
adb -e uninstall your.application.package.name
Then try to install the application again.
Solution 4:
This was happening in my project because I was using an XML resource to set the version code.
AndroidManifest.xml:
android:versionCode="@integer/app_version_code"
app.xml:
<integer name="app_version_code">64</integer>
This wasn't a problem in prior versions of adb
, however, as of platform-tools
r16 this is no longer being resolved to the proper integer. You can either force the re-install using adb -r
or avoid the issue entirely by using a literal in the manifest:
android:versionCode="64"