尝试更新我的应用程序时失败[INSTALL_FAILED_ALREADY_EXISTS]


388

当我尝试使用签名与上一个签名相同的新版本更新应用程序时,显示上述错误。

我缺少什么?

Answers:


756

如果您通过设备将应用程序安装在设备上adb install,则应查找的重新安装选项-r。因此,如果您这样做adb install -r,则无需先卸载即可安装。


1
adb install -r并不总是能正常工作(我从Sprint获得了EVO 4G,但其表现却不符合预期)。我发现的唯一解决方法是手动删除该应用程序。有时,我什至必须通过手机的UI进行操作,因为EVO是如此的气质。
jww 2014年

21
我来这里是因为我想知道是否adb install -r先删除然后再安装或升级我的应用程序。尽管adb的描述不是很清楚(-r:替换现有应用程序),adb install -r但确实会升级您的应用程序,并且不会删除您的应用程序数据。因此适合测试升级您的应用程序(这是我一直在寻找的信息)。
Thibault D.

8
对于声称adb install -r不起作用的人:我想.apk您尝试安装的文件未使用与.apk设备上安装的文件相同的开发人员证书签名。如果您已经安装了Debug应用程序,然后又尝试安装Release应用程序,则很容易发生。如果应用程序未使用相同的证书签名,则无法更新。
Thibault D.

1
如果您使用多个帐户,则可能必须从所有帐户中卸载(请参阅GregP的答案)。我这样做之后对我有用。
JD Sandifer

不起作用,我的应用程序是系统应用程序,这不能解决我的问题:/
htafoya

11

之所以出现该错误,是因为已经存在一个与您的应用程序包名称相同的应用程序。如果确定以前没有安装过相同的应用程序,请更改软件包名称并尝试。

否则,您可以执行以下操作:

  1. 从设备上卸载应用程序:转到设置->管理应用程序,然后选择卸载或
  2. 使用adb命令行界面卸载该应用程序:键入adb uninstall完成此步骤后,请尝试再次安装该应用程序。

我的应用程序没有出现在菜单或应用程序商店下-但是由于穆罕默德的提示而找到了它。
DavidP 2012年

2
这不是一个好的解决方案。如果您在应用程序中保存了一堆状态,例如SharedPrefs,该怎么办?如果您要从系统中进行硬卸载,则必须重新配置应用程序!
IgorGanapolsky '16

这是我需要的解决方案adb uninstall my.package。奇怪的是,它并没有卸载的首选项,我想删除,但它并摆脱了包装,这是挡住我从重新安装的事情。
JMD

6

这可能意味着您的设备上已经为其他用户安装了该应用程序。用户共享应用程序。我不知道他们为什么这么做,但他们这样做。因此,如果一个用户更新了应用程序,那么另一个用户也会被更新。如果您在其中一个上进行卸载,则不会从另一个上将其从系统中删除。


这是我的确切问题!继续尝试通过adb和手动方式进行卸载,但是adb install <package.apk>即使该应用程序在应用程序列表中不再可见,该操作仍然失败。原来我的设备上的其他帐户上仍然存在该邮件...谢谢!
JD Sandifer

这也为我解决了。有关要为所有用户卸载的设备的信息,我必须转到“设置”>“应用程序”,点击“应用程序”,点击右上角的省略号,然后点击“为所有用户卸载”。
d219

3

安装

adb install -r exampleApp.apk

(这-r将替换现有副本,-s如果在模拟器上安装则添加一个)

确保应用程序签名相同且debug/release变体相同

奖金

我在中设置了一个别名~/.bash_profile,使其成为2char命令。

alias bi="gradlew && adb install -r exampleApp.apk"

(简短的构建和安装)


0

如果您仍然遇到问题,请尝试使用命令提示符卸载应用程序。只需添加命令,adb uninstall com.example.yourpackagename 然后尝试重新安装即可。


0

使用我的Android 5平板电脑时,每次我尝试使用adb来安装签名的发行版apk时,都会收到[INSTALL_FAILED_ALREADY_EXISTS]错误消息。

我必须先卸载调试包。但是,我无法使用设备的应用程序管理器进行卸载

如果确实要使用Application Manager卸载调试版本,那么我必须从Android Studio重新运行调试版本,然后使用adb uninstall com.example.mypackagename

最后,我可以使用adb install myApp.apk安装签名的发行版apk。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.