Android 尝试更新应用程序时失败[安装失败\u已\u存在]
当我试图用和前一个签名相同的新版本更新我的应用程序时,显示了上面的错误Android 尝试更新应用程序时失败[安装失败\u已\u存在],android,installation,Android,Installation,当我试图用和前一个签名相同的新版本更新我的应用程序时,显示了上面的错误 我缺少什么?如果您通过adb install在设备上安装应用程序,您应该寻找重新安装选项,该选项应为-r。因此,如果您执行了adb安装-r,您应该能够在不卸载之前进行安装。您会收到该错误,因为已经存在与您的应用程序包名相同的应用程序。如果您确定以前没有安装过相同的应用程序,请更改程序包名称并重试 否则,以下是您可以做的: 从设备卸载应用程序:转到设置->管理应用程序,然后选择卸载 或 使用adb命令行界面卸载应用程序:键入a
我缺少什么?如果您通过
adb install
在设备上安装应用程序,您应该寻找重新安装选项,该选项应为-r
。因此,如果您执行了adb安装-r,您应该能够在不卸载之前进行安装。您会收到该错误,因为已经存在与您的应用程序包名相同的应用程序。如果您确定以前没有安装过相同的应用程序,请更改程序包名称并重试
否则,以下是您可以做的:
这可能意味着该应用程序已为设备上的其他用户安装。用户共享应用程序。我不知道他们为什么这么做,但他们确实这么做了。因此,如果一个用户更新了应用程序,另一个用户的应用程序也会更新。如果在其中一个上卸载,则在另一个上不会从系统中删除该应用 安装 (如果安装在仿真器上,则使用
-r
替换现有副本,添加-s
)
确保应用程序的签名相同,并且是相同的debug/release
变体
奖金
我在~/.bash\u配置文件中设置了一个别名,使其成为2char命令
alias bi="gradlew && adb install -r exampleApp.apk"
(Build and Install的缩写)如果您仍然面临问题,请尝试使用命令提示符卸载应用程序。
只需添加命令adb uninstall com.example.yourpackagename
然后再次尝试重新安装。它可以工作 在我的安卓5平板电脑上,每当我尝试使用adb来安装签名版apk时,我都会收到[安装失败\u已经存在]
错误
我必须先卸载调试包。但是,我无法使用设备的应用程序管理器卸载
如果使用应用程序管理器卸载调试版本,那么我必须从Android Studio重新运行调试构建变量,然后使用adb uninstall com.example.mypackagename卸载它
最后,,我可以使用adb install myApp.apk
来安装已签名版本的apk。如果应用程序是从不同的PC上构建的,也可能会造成这种情况。如果您将调试.keystore
从某人的机器复制到项目顶部的/cert
文件夹中,然后添加将配置部分签名到您的应用程序/build.gradle
:
signingConfigs {
debug {
storeFile file("cert/debug.keystore")
}
}
然后告诉调试生成如何对应用程序进行签名:
buildTypes {
debug {
// Other values
signingConfig signingConfigs.debug
}
}
将此文件签入源代码管理。这将允许整个开发团队进行无缝的安装/升级过程,并使您的项目对未来的机器升级具有弹性。我的应用程序没有出现在菜单或应用程序商店下-但多亏了穆罕默德的提示。这不是一个好的解决方案。如果你在应用程序中保存了一堆像SharedPref这样的状态会怎么样?如果你从系统中硬卸载,你必须重新配置你的应用程序!这就是我需要的解决方案,adb卸载我的.package
。奇怪的是,它没有卸载我想要删除的prefs,但它确实删除了包,这正是阻止我重新安装它的原因。adb install-r
并不总是有效(我从Sprint获得了一个EVO 4G,它拒绝按预期运行)。我发现唯一的解决办法是手动删除应用程序。有时候,我甚至不得不通过手机的用户界面来完成,因为EVO太变化无常了。我来这里是因为我想知道adb install-r
是否会先删除,然后安装或升级我的应用程序。虽然adb
的描述不是很清楚(-r:替换现有应用程序),adb安装-r
确实升级了你的应用程序,并且没有删除你的应用程序数据。因此适合测试升级您的应用程序(这是我一直在寻找的信息)。对于声称adb安装-r
不起作用的人:我猜您尝试安装的.apk
文件与设备上安装的.apk
文件没有使用相同的开发人员证书签名。如果您安装了调试应用程序,然后尝试安装发布应用程序或其他方式,则很容易发生这种情况。如果应用程序未使用同一证书签名,则无法更新该应用程序。如果使用多个帐户,则可能必须从所有帐户卸载(请参阅GregP的答案)。在我这么做之后,这对我起了作用。不起作用,我的应用程序是一个系统应用程序,这并不能解决我的问题:/n这正是我的问题!一直尝试卸载-使用adb和手动卸载,但adb安装
一直失败,即使应用程序在应用程序列表中不再可见。原来它还在我设备上的另一个帐户上。。。谢谢这也帮我修好了。有关要为所有用户取消安装的设备的信息,我必须转到“设置”>“应用程序”,点击应用程序,点击右上角的省略号,然后点击“为所有用户卸载”。
buildTypes {
debug {
// Other values
signingConfig signingConfigs.debug
}
}