在應(yīng)用開發(fā)過(guò)程中經(jīng)常會(huì)遇到應(yīng)用安裝失敗的問(wèn)題,今天就給大家分析一下一些華為手機(jī)上主要的安裝錯(cuò)誤碼,幫助大家快速的解決應(yīng)用安裝問(wèn)題。
1. 該安裝包無(wú)效或不完整、該安裝包與操作系統(tǒng)不兼容(錯(cuò)誤碼:-2)
原因分析:三方應(yīng)用上架時(shí)上傳了無(wú)效安裝包
解決辦法:上傳正確的安裝包
2. 存儲(chǔ)空間不足(錯(cuò)誤碼:-4)
原因分析:應(yīng)用安裝時(shí)空間不足
解決辦法:清理手機(jī)空間,可以搜索手機(jī)管家,進(jìn)入手機(jī)管家的清理加速
3. 手機(jī)上有相同包名應(yīng)用(錯(cuò)誤碼:-5)
原因分析:華為應(yīng)用新舊包名替換,手機(jī)上已經(jīng)安裝新包名,舊包名apk不能安裝
解決方法:修改為應(yīng)用的包名為新包名
4. 更新不兼容(錯(cuò)誤碼:-7)
原因分析:安裝的應(yīng)用與手機(jī)上的應(yīng)用包名相同但是簽名不相同
解決方法:修改打包的簽名為上個(gè)版本的簽名
5. 共享用戶不兼容(錯(cuò)誤碼:-8)
原因分析:應(yīng)用為ShareUid應(yīng)用,應(yīng)用與已經(jīng)安裝的ShareUid應(yīng)用簽名不一致導(dǎo)致安裝失敗。
解決辦法:與已有的ShareUid應(yīng)用簽名保持一致
6. 共享庫(kù)已丟失(錯(cuò)誤碼:-9)
原因分析:應(yīng)用依賴了系統(tǒng)不存在的共享庫(kù),最常見的是google map library導(dǎo)致安裝失敗
解決方法:建議應(yīng)用集成HMS以避免google map library產(chǎn)生的問(wèn)題。
7. 應(yīng)用組件的命名與已安裝應(yīng)用有沖突(錯(cuò)誤碼:-13)
原因分析:應(yīng)用定義的ContentProvider與手機(jī)上已經(jīng)安裝的應(yīng)用沖突
如何確定與什么應(yīng)用沖突:
1.查看日志,找到安裝失敗回調(diào)
2020-12-26 09:39:06.589[PackageManager/InstallResultReceiver][INFO]main{1} package install callback:packageName:[com.MobileTicket],statusCode:[5],extraStatus:[INSTALL_FAILED_CONFLICTING_PROVIDER: Scanning Failed.: Can't install because provider name com.mpaas.demo.nebula.provider (in package com.MobileTicket) is already used by com.hanweb.hnzwfw.android.activity],otherPkgName:[null],storagePath:[null],resultCode:[-13]
2.adb指令拿到出問(wèn)題手機(jī)上所有的ContentProvider定義,查看哪個(gè)應(yīng)用跟要安裝的應(yīng)用沖突了。
adb shell dumpsys package providers >d:/temp/provider.txt
解決方法:
卸載手機(jī)上ContentProvider 中Provider Authorities相同的應(yīng)用以解決沖突問(wèn)題
8. 應(yīng)用與此設(shè)備的CPU不兼容(錯(cuò)誤碼:-113、-16)
原因分析:應(yīng)用打包未針對(duì)特定cpu版本進(jìn)行適配
解決方法:應(yīng)用需要兼容對(duì)應(yīng)cpu類型。
9. 應(yīng)用驗(yàn)證超時(shí)(錯(cuò)誤碼:-21)& 應(yīng)用驗(yàn)證失敗(錯(cuò)誤碼:-22)
原因分析:手機(jī)自動(dòng)到google play 商店校驗(yàn)應(yīng)用是否合法,訪問(wèn)過(guò)程中網(wǎng)絡(luò)連接超時(shí),正常發(fā)貨手機(jī)不會(huì)主動(dòng)去google play商店校驗(yàn),除非用戶主動(dòng)升級(jí)了google play商店或者用戶下載的某個(gè)應(yīng)用去升級(jí)了google play商店,導(dǎo)致去校驗(yàn)超時(shí)。
解決方法:
1.到手機(jī)中設(shè)置—應(yīng)用—應(yīng)用管理---找到界面菜單鍵 點(diǎn)擊顯示系統(tǒng)應(yīng)用---找到google play 商店 --- 找到卸載按鈕或者界面中菜單按鈕點(diǎn)擊卸載更新 -----卸載完成如果界面上顯示停用應(yīng)用點(diǎn)擊停用(沒有則不用設(shè)置)
2. 設(shè)置---Google---安全----goole play保護(hù)機(jī)制 里面的開關(guān)是否開啟了,如果開啟則全部關(guān)閉。
10. 系統(tǒng)已經(jīng)存在較高版本,此安裝包無(wú)法安裝(錯(cuò)誤碼:-25)
原因分析:android是多用戶機(jī)制,這個(gè)地方可能存在子用戶、隱私空間有高版本的應(yīng)用存在導(dǎo)致不能安裝,并且是用戶參加過(guò)眾測(cè)之類的活動(dòng)導(dǎo)致安裝了比較高的版本
解決方法:查看子用戶和隱私空間中有沒有對(duì)應(yīng)的高版本,如果有,卸載高版本的應(yīng)用后再安裝
11. 解析失敗(錯(cuò)誤碼:-102)
原因分析:安裝包打包錯(cuò)誤導(dǎo)致解析失敗
解決方法:在華為應(yīng)用市場(chǎng)安裝請(qǐng)找華為應(yīng)用市場(chǎng)開發(fā)人員定位(找到日志中下載路徑,通過(guò)電腦瀏覽器下載apk,通過(guò)adb安裝看是否同樣報(bào)錯(cuò)),其他渠道安裝聯(lián)系其他渠道人員定位
12. 安裝包未包含任何證書(錯(cuò)誤碼:-103)
原因分析:安裝包中沒有證書,安裝包試內(nèi)側(cè)用戶專屬包,定向發(fā)送給用戶。
解決辦法:需要開發(fā)者添加證書。
13. 未知錯(cuò)誤(錯(cuò)誤碼:-111)
原因分析:只有華為應(yīng)用安裝不了,其他應(yīng)用正常安裝,或者其他應(yīng)用也不能安裝,設(shè)備是定制設(shè)備不能隨便安裝應(yīng)用
解決辦法:此設(shè)備可能是鼎橋雙系統(tǒng)警務(wù)通的機(jī)型,需要聯(lián)系鼎橋熱線反饋問(wèn)題。
14. 應(yīng)用定義的權(quán)限與系統(tǒng)已有應(yīng)用的權(quán)限沖突(錯(cuò)誤碼:-112)
原因分析:安裝的應(yīng)用與手機(jī)已經(jīng)安裝的應(yīng)用定義權(quán)限有沖突,詳細(xì)分析中有顯示沖突的已安裝應(yīng)用是哪個(gè)
解決方法:需要開發(fā)者修改自定義權(quán)限