Android 解决app应用内升级或者新版本的apk无法覆盖旧版本apk手机提示应用包损坏的问题
bug场景:本人接手了一个已经开发好的项目,由于需求更新要对app进行升级,但是我打包好的apk无论如何都覆盖不了旧版本apk,手机一直提示应用包损坏。经过本人的不懈努力终于找到了问题的原因。本人刚刚接手的时候app项目代码中 versionCode为7,因此我升级后的apk将versionCode改为8,但是却覆盖不了,最终我使用aapt 命令查看旧的 apk的versionCode居然为14.这时我真想拿出背后藏着的刀。。。
除此之外还有其他情况会导致该问题的发生。以下是解决方式:
1.排除新版本APK文件的确是损坏的问题。可以先卸载旧版本apk之后再安装新版本apk来判断是否是文件损坏的问题。
2.手机提示 “该文件包与具有同一名称的现有文件包存在冲突” 表示两个apk的包名相同但是所使用的签名文件不同。
3.新版本的apk的targetSdkVersion低于旧版本的targetSdkVersion,也会导致apk安装不成 功,需要调高新版本targetSdkVersion。
4.新版本的versionCode和versionName 低于旧版本的versionCode和versionName
查看apk的相关信息方法:
1.找到你的sdk目录下build-tools文件夹下最新版本sdk文件夹下的aapt.exe文件,复制该文件所在目录添加到电脑环境变量的Path 下。启动cmd;(或者在cmd下切换到该文件所在的目录下);
2.输入命令aapt[空格]dump[空格]badging[空格]APK文件,该apk的相关信息就会出现;数据量较多,请筛选。