手动安装更新的APK失败,“签名与先前安装的版本不匹配”

我已经构build了一个愚蠢的应用程序分享给几个朋友。 没有必要把它放在应用程序商店。

我build立了第一个apk (签名),上传到networking服务器,并运行良好。

出现了一个小问题,我修复了它,重新构build,使用相同的密钥库进行了签名,然后再次上传。 现在看来,我无法从新的apk安装。 debugging器告诉我:

 signatures do not match the previously installed version 

所以我卸载了旧版本,打开应用程序抽屉并将其拖到“卸载”button上。 打开“设置 – >应用程序”时,我再也看不到它了。 我没有看到我的设备上的应用程序的任何痕迹。

但我仍然收到上述错误信息。

是否有可能某些信息在设备上仍然存在? 有什么方法可以validation吗?

Related of "手动安装更新的APK失败,“签名与先前安装的版本不匹配”"

是的如果您的旧应用程序没有被移除100%或者其数据没有被移除,那么这是可能的。

试试:adb卸载“com.yourapp.yourapp”

如果您不知道如何replace“com.yourapp.yourapp”,那么您只需打开Android studio,在连接到设备时运行您的应用程序,然后查看debugging窗口。

它说:

  Waiting for device. Target device: samsung-sm_t531-xxxxxxxxx Uploading file local path: C:\Users\myapp\app\build\outputs\apk\myapp.apk remote path: /data/local/tmp/com.myapp.myapp Installing com.myapp.myapp DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/com.myapp.myapp" pkg: /data/local/tmp/com.myapp.myapp Success 

在这种情况下,com.myapp.myapp是您必须用来卸载的软件包的名称。

我有同样的问题, adb uninstall解决scheme没有为我工作。

有效的是

  • 在您的设备上转到设置 – >应用程序
  • select你的应用程序,并在菜单中select“卸载所有用户”

即使我以前卸载的应用程序,它仍然在列表中。

对我来说,如果应用程序是分发的, adb解决scheme是一个不行:你不能要求自己的朋友安装android sdk!

这里的方法是编辑AndroidManifest.xml并在<manifest>标记(这是根元素)中增加android:versionCode属性。

这将更新您的安装的应用程序

如果您在进行连接testing时看到这一点,请确保在通过adb卸载时包含.test ,因为通过应用程序卸载 – >设置不会摆脱testing包

 adb uninstall your.broken.package.test 

如果你只是通过卸载

 adb uninstall your.broken.package 

你的testing包将仍然在那里。 这只是我使用gradle命令行时注意到的,在android studio中没有遇到这个问题

从手机或模拟器中卸载旧的应用程序,然后再次运行。