原文地址:關於Android安裝apk出現解析包異常問題情況總結 | Stars-One的雜貨小窩 說之前,可以推薦下各位使用這個開源庫AndroidUtilCode,下麵提及到的工具類,都是在此庫中 以下說的解析包異常,是指進到安裝頁面就立馬出現了錯誤提示 而不是在可以正常進入安裝界面,然後點擊了 ...
原文地址:關於Android安裝apk出現解析包異常問題情況總結 | Stars-One的雜貨小窩
說之前,可以推薦下各位使用這個開源庫AndroidUtilCode,下麵提及到的工具類,都是在此庫中
以下說的解析包異常,是指進到安裝頁面就立馬出現了錯誤提示
而不是在可以正常進入安裝界面,然後點擊了安裝按鈕之後後,最後彈出個安裝失敗的提示
這兩個情況是有所區別的,需要註意!!
而下麵總結的6種情況,第6種情況就是進入到安裝界面了,然後點擊安裝按鈕,出現了127的錯誤碼提示
當然,遇到的情況不多,可能總結不全,若是有所遺漏,各位可以在評論區回覆下
總結
- apk下載過程中損壞
- 安裝的代碼有問題(沒有申請對應許可權)
- 高版本下載apk不成功(apk文件讀取不到導致報錯)
- 存儲許可權未申請,Android8以上,沒有申請允許應用安裝未知應用的許可權
- apk要使用v1+v2簽名,v2是適用於Android7.0以上版本的安裝
- Android12版本安裝才出現的問題,原因是清單文件中需要聲明exported屬性
1.apk下載過程中損壞
這個情況,沒有太多展開可以說的,比較少見,及網路下載過程中,apk文件損壞了,導致解析包出現異常
2.安裝apk代碼有問題
這裡統一推薦使用AppUtils.installApp();
方法去安裝apk,裡面進行了Android8.0的版本相容處理,包含安裝第三方應用的許可權申請
動態申請前,別忘了需要在清單文件中聲明此許可權
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
3.高版本下載apk不成功
這個問題是我目前排查apk出現過的問題,由於之前的項目中,是固定下載在Download文件夾中,但是,在Android10之後,存儲許可權發生變更,導致無法直接將文件下載到Download文件夾,從而導致文件下載失敗,進而導致出現解析包異常
解決方法只要適配下Android10之後的路徑問題即可
這裡推薦下載在app自己的files文件夾中即可解決問題,使用此路徑PathUtils.getExternalAppDownloadPath()
即可
4.許可權未申請
這裡需要說下有兩種許可權,一個是存儲許可權,另外一個則是安裝第三方應用的許可權
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
存儲許可權的話,Android6.0需要手動申請,這裡不再過多贅述
5.apk簽名問題
這裡也是比較常見的問題了,原因是我項目使用了360加固,然後,進行了重簽名導致
之前一直都是使用命令行進行重簽名,沒太註意到,其實v2的參數需要聲明,加固後的安裝包一直沒有v2簽名
而Android7.0版本都是需要驗證v2版本簽名,自然是出現了問題
之後進行了嘗試,並且稍微封裝了一個用來簽名的工具,就不用每次都要輸入命令了
感興趣的可看此鏈接ASCTool: apk簽名驗證破解工具 Apk Signature Crack Tool
6.Android12版本安裝出現問題
targetSdkVersion為31【以Android 12為目標】的應用務必要加入v2簽名,務必要對使用的activity,service,broadcast receiver含有intent-filter,顯示聲明android:exported屬性。
AndroidManifest文件中,有intent-filter的屬性的四大組件,需要聲明exported屬性為true
即下麵截圖這種情況
如果適配安卓12的系統,調用的sdk是31的話。可能需要進行適配。
出現安裝失敗22的,有可能是因為activity或者receiver,service裡面沒有加上android:exported="false"這個欄位。
註意在launcheractivity裡面一定要設置android:exported為true。這個是外部引用的意思。
如果在launcheractivity裡面沒有設置為true。那麼APP圖標點擊就會出現未安裝該應用程式。
如果出現安裝失敗-127的話。是因為你的manifest裡面聲明的許可權重覆了。
提問之前,請先看提問須知 點擊右側圖標發起提問 或者加入QQ群一起學習 TornadoFx學習交流群:1071184701