导致该问题出现的原因是APK包的签名不一致导致的:
android系统使用包名(package name)来判定应用程序的同一性,但是由于包名可以由开发者自由设置,为了保护应用程序不被其他开发者开发的同包名应用覆盖,用于发布的Android应用程序需要加上开发者签名。
在应用程序被升级的时候,Android系统将会验证被升级的应用程序包与升级后的应用程序包是否使用了同样的开发者签名,如果一致,该应用程序可以被升级;如果不一致,那么将被视为非同一开发者开发的应用程序,用户需要先卸载已经安装的应用然后再安装新应用,在卸载的过程中,应用在android系统中所保存的设置信(SavedPreferences)将被删除,以保护应用本地保存的资料不被盗取。
所以在打包的过程中一要保持签名是同一个,不然紧急情况下就是挖坑给自己跳啊....