52
adb install foo.apk

When using this command, if the apk exists, I should get the error *Failure [INSTALL_FAILED_ALREADY_EXISTS]*

 adb install -r myapp-release.apk

In this case,the existing apk will be replaced, by retaining old data according to the docs,

'-r' means reinstall the app, keeping its data

Now how do I reinstall the app, but all previous data should be erased?

EDIT

I know we can do this

adb uninstall com.package.foo & adb install foo.apk

I just wanted to know if there is a command or something in adb itself.

SatheeshJM
  • 3,575
  • 8
  • 37
  • 60
  • hi , i try : adb install -r myapp-release.apk But I cant Update app , i want update the app without creare data , do you know solotion ? – mohammad Jul 17 '16 at 04:40

5 Answers5

44

Before the installation clean the data like this:

adb shell pm clear com.package.foo

then you can install normally using:

adb install foo.apk

or just run through your IDE

Ryan Amaral
  • 4,059
  • 1
  • 41
  • 39
13

Try adb uninstall yourpackage.whatever.com, then install again. Or select Clear data on the phone for that application.

Alexander Kulyakhtin
  • 47,782
  • 38
  • 107
  • 158
  • Thanks, for some reason, whenever I ran `adb install something.apk` `adb` outputted `Performing Streamed Install` and then `Success` but the APK wouldn't get installed on my phone. After I ran `adb uninstall bundle.id.something`, `adb install` started working. – Pyzard Dec 13 '20 at 20:35
12
adb install [-l] [-t] [-r] [-s] <file> - push this package file to the 
   device and install it
   ('-t' uses for install debug apk)
   ('-l' means forward-lock the app)
   ('-r' means reinstall the app, keeping its data)
   ('-s' means install on SD card instead of internal storage)

adb uninstall [-k] <package> - remove this app package from the device
   ('-k' means keep the data and cache directories)

If you want to install debug.apk file without clear the data:

adb install -t -r D:/debug.apk

If you want to install debug.apk file with clear the data:

adb shell pm clear com.package.app
adb install -t D:/debug.apk

And to start the app on Device via adb command:

adb shell am start -n com.package.app/com.package.app.activity.MainActivity
NickUnuchek
  • 11,794
  • 12
  • 98
  • 138
10

It's adb uninstall com.package.foo && adb install foo.apk, however the uninstall won't work if the app is a system app, which can't be uninstalled. There's the command adb shell pm clear packageName to clear a certain app's data, however it may require root. To reinstall the apk as usual adb install -r app.apk

Smeterlink
  • 716
  • 6
  • 20
4

No. There is no (documented) way to do that with the adb install command. Instead, you should do this:

adb uninstall com.your.package
adb install foo.apk
Sam Dozor
  • 40,335
  • 6
  • 42
  • 42
  • actually it should be `adb uninstall com.foo.foo` I just wanted to know if there was a some command in adb itself – SatheeshJM Sep 18 '12 at 19:37