失败[INSTALL_FAILED_ALREADY_EXISTS]当我试图更新我的应用程序

当我试图更新我的应用程序与新版本具有相同的签名前一个,显示上述错误。

我错过了什么?

148604 次浏览

如果你通过adb install在你的设备上安装应用程序,你应该寻找重新安装选项,它应该是-r。因此,如果你执行adb install -r,你应该能够在不卸载之前安装。

您会得到这个错误,因为与您的应用程序具有相同包名的应用程序已经存在。如果您确定以前没有安装过相同的应用程序,请更改包名称并尝试。

除此之外,以下是你可以做的:

  1. 从设备上卸载应用:进入设置->管理应用,选择“卸载” 李或< / >
  2. 使用adb命令行界面卸载应用:type adb Uninstall 完成此步骤后,再次尝试安装应用程序。李< / >

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

安装

adb install -r exampleApp.apk

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

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

奖金

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

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

(Build and Install的简称)

如果你仍然面临问题,那么尝试使用命令提示符卸载应用程序。 只需添加命令adb uninstall com.example.yourpackagename 然后尝试重新安装。它的工作原理!< / p >

在我的Android 5平板电脑上,每次我尝试使用adb来安装一个签名发布的apk时,我都会得到[INSTALL_FAILED_ALREADY_EXISTS]错误。

我必须先卸载调试包。但是,我不能使用设备的应用程序管理器!卸载

如果确实使用应用程序管理器卸载调试版本,那么我必须从Android Studio重新运行调试构建变体,然后使用adb uninstall com.example.mypackagename卸载它

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

如果应用程序是在不同的pc上构建的,也会导致这种情况。如果你将某人机器上的debug.keystore复制到项目顶部的/cert文件夹中,然后将signingConfigs部分添加到你的app/build.gradle中,你可以使整个团队更容易:

  signingConfigs {
debug {
storeFile file("cert/debug.keystore")
}
}

然后告诉调试版本如何为应用程序签名:

  buildTypes {
debug {
// Other values
signingConfig signingConfigs.debug
}
}

将该文件签入源代码控制。这将允许整个开发团队无缝安装/升级过程,并使您的项目能够适应未来的机器升级。