当我尝试使用与上一个版本具有相同签名的新版本更新我的应用程序时,显示上述错误。
我缺少什么?
答案 0 :(得分:706)
如果您通过adb install
在设备上安装该应用程序,则应该查找应该为-r
的重新安装选项。因此,如果您执行adb install -r
,您应该可以在不卸载之前安装。
答案 1 :(得分:10)
您收到该错误,因为包名称与您的应用程序相同的应用程序已存在。如果您确定之前未安装过相同的应用程序,请更改软件包名称并尝试。
否则,您可以做以下事情:
答案 2 :(得分:6)
这可能意味着已经为您设备上的其他用户安装了该应用程序。用户共享应用程序我不知道为什么他们这样做,但他们这样做。因此,如果一个用户更新,则还为另一个用户更新应用程序。如果您在一个上卸载,则不会从另一个系统中删除该应用程序。
答案 3 :(得分:2)
adb install -r exampleApp.apk
(-r
使其替换现有副本,如果在模拟器上安装,则添加-s
确保该应用的签名相同且debug/release
变体
我在~/.bash_profile
中设置了一个别名,使其成为2char命令。
alias bi="gradlew && adb install -r exampleApp.apk"
(构建和安装的缩写)
答案 4 :(得分:0)
如果您仍然遇到问题,请尝试使用命令提示符卸载应用程序。
只需添加命令adb uninstall com.example.yourpackagename
然后尝试重新安装。它有效!
答案 5 :(得分:0)
在我的Android 5平板电脑上,每次尝试使用adb来安装签名的发行版apk时,都会出现[INSTALL_FAILED_ALREADY_EXISTS]
错误。
我必须先卸载调试软件包。但是,我无法使用设备的应用程序管理器进行卸载!
如果要使用 Application Manager 卸载调试版本,则必须从Android Studio重新运行调试版本,然后使用adb uninstall com.example.mypackagename
最后,我可以使用adb install myApp.apk
安装签名的发行版APK。
答案 6 :(得分:0)
如果应用程序是从不同的PC构建的,也可能导致这种情况。如果将某人的计算机上的debug.keystore
复制到项目顶部的/cert
文件夹中,然后将signingConfigs
部分添加到{{1 }}:
app/build.gradle
然后告诉您的调试版本如何对应用程序进行签名:
signingConfigs {
debug {
storeFile file("cert/debug.keystore")
}
}
将此文件检入源代码管理。这样一来,您整个开发团队就可以进行无缝的安装/升级过程,并使您的项目对未来的机器升级也具有弹性。