jquery

highlight.js

2019年8月13日 星期二

[Android] Android Studio 解決“應用程式未安裝” (App not installed)




今天在build APK時發現,build好的APK不能裝在模擬器上
雖然可以下載,但是下載下來卻不能安裝,反而會顯示“應用程式未安裝” (App not installed)的畫面

後來又發現有些模擬器可以使用,有些模擬器不行!?
找了半天才發現原來是是簽名的問題

Android Studio 在做Generate Signed Bundle or APK 時可以選擇“Signature Versions”,分為V1及V2


看文件這個簽名是在Andoid 7.0後定義的
APK 簽章配置第 2 版
PackageManager 類別現在支援使用 APK 簽章配置第 2 版來驗證應用程式。APK 簽章配置第 2 版是全檔案簽章配置,可透過偵測對 APK 檔案所做的任何未授權變更,大幅改善驗證速度並增強完整性保證。

為了維持回溯相容性,APK 必須先以第 1 版簽章配置 (JAR 簽章配置) 簽署,然後再用第 2 版簽章配置簽署。有了第 2 版簽章配置,如果以第 2 版配置簽署之後,以其他憑證簽署 APK,驗證會失敗。

「N Developer Preview」稍後將提供對 APK 簽章配置第 2 版的支援。
Ref: https://developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2

In Android 7.0, APKs can be verified according to the APK Signature Scheme v2 (v2 scheme) or JAR signing (v1 scheme). Older platforms ignore v2 signatures and only verify v1 signatures.
Ref: https://source.android.com/security/apksigning/v2.html#verification


測試:
1. 只勾選V2簽名7.0以下會直接安裝完顯示未安裝,7.0以上則可以正常安裝
2. 同時勾選V1和V2則4.0版本到9.0版本皆可正常安裝


所以之後建立APK還是把兩種簽名都打勾會比較保險,如果你下載的APK不管怎麼安裝都無法成功的話
很大的機率是因為簽名的關係,就可能要依照你的手機Android版本找有支援的簽名APK!

留言 (1)

  1. Slots | CasinoTopTOS
    Slots 텍사스 홀덤 have a real-time look at 브라 밝기 조절 all the available 썬 시티 slots and casinos 우리계열 from all over the world. Play free demo games or for real 토토 랜드 같은 사이트 money.

    回覆刪除