情景:机器上已经安装了一个版本
如果调用系统的安装流程,进行apk包的重新安装,即,安装apk是通过系统弹出如下弹窗

安装apk。
如果出现提示 “应用未安装”
如图:

莫慌,不一定是安装包损坏。
用adb install命令进行安装,会提示这个错误

可知,安装包的版本打包时比之前客户安装的版本还要低。
那么,哪里设置这个版本信息呢
在build.gradle文件中有如下配置
android {
defaultConfig {
versionName XXX
versionCode XXX
}
}
其中,起到决定到底是新的版本还是旧版本的是versionCode这个参数。
versionName虽然叫做版本名称,但是它代表了一个文本名称,你甚至可以把它设置为"alpha",“beta”。

当新的apk包的versionCode小于已安装包的值时,并且设备没有卸载已经安装的版本时,安装不小心将versionCode减少后的apk包,就会报错,实际是认为这个安装包是旧版本,所以拒绝安装。
当做app的自动更新功能时,如果使用调用系统安装弹窗安装方式时,一定要保证新打包的versionCode不能比之前的小。
或者先做卸载旧版本包的操作再调用安装。

当尝试在已安装某版本应用的设备上重新安装apk时,如果出现"应用未安装"的提示,可能是因为新apk的versionCode低于已安装版本。versionCode在build.gradle文件中设置,它决定了版本的新旧。versionName不影响安装,仅作为文本标识。若versionCode减小,系统会认为是旧版本而拒绝安装。为避免此问题,确保自动更新时versionCode递增,或先卸载旧版再安装。
1万+

被折叠的 条评论
为什么被折叠?



