Android 解決app應用內升級或者新版本的apk無法覆蓋舊版本apk手機提示應用包損壞的問題
bug場景:本人接手了一個已經開發(fā)好的項目降盹,由于需求更新要對app進行升級凑队,但是我打包好的apk無論如何都覆蓋不了舊版本apk,手機一直提示應用包損壞岳掐。經過本人的不懈努力終于找到了問題的原因。本人剛剛接手的時候app項目代碼中?versionCode為7饭耳,因此我升級后的apk將versionCode改為8串述,但是卻覆蓋不了,最終我使用aapt 命令查看舊的??apk的versionCode居然為14.這時我真想拿出背后藏著的刀寞肖。纲酗。衰腌。
除此之外還有其他情況會導致該問題的發(fā)生。以下是解決方式:
1.排除新版本APK文件的確是損壞的問題觅赊∮胰铮可以先卸載舊版本apk之后再安裝新版本apk來判斷是否是文件損壞的問題。
2.手機提示 “該文件包與具有同一名稱的現(xiàn)有文件包存在沖突”? 表示兩個apk的包名相同但是所使用的簽名文件不同吮螺。
3.新版本的apk的targetSdkVersion低于舊版本的targetSdkVersion饶囚,也會導致apk安裝不成??? ???功,需要調高新版本targetSdkVersion鸠补。
4.新版本的versionCode和versionName 低于舊版本的versionCode和versionName
查看apk的相關信息方法:
1.找到你的sdk目錄下build-tools文件夾下最新版本sdk文件夾下的aapt.exe文件萝风,復制該文件所在目錄添加到電腦環(huán)境變量的Path 下。啟動cmd紫岩;(或者在cmd下切換到該文件所在的目錄下)规惰;
2.輸入命令aapt[空格]dump[空格]badging[空格]APK文件,該apk的相關信息就會出現(xiàn)泉蝌;數(shù)據(jù)量較多歇万,請篩選。