Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES

通過android studio工具欄的Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到一個app-release-unsigned.apk,安裝此apk會報下面截圖錯誤

按照提示是由於apk中沒有簽名文件,解壓並比較該apk和正常可安裝apk可以看出確實缺少CERT.RSA以及CERT.SF文件。

簽名文件可以在java的bin目錄通過keytool生成,也可以通過android studio自帶的工具生成。

手動通過Build ->Generate Signed Bundle or APK ->APK 然後選擇key password以及alis是可以正常安裝,但是感覺有些麻煩。

問題就出在自動構建apk流程上,android官網提到,除非您明確定義發佈 Build 的簽名配置,否則 Gradle 不會爲該 Build 的 APK 簽名。要使用 Gradle 構建配置爲您的發佈 Build 類型手動配置簽名,簽名配置添加到模塊級 build.gradle 文件中。

    ...
    android {
        ...
        defaultConfig {...}
        signingConfigs {
            release {
                storeFile file("myreleasekey.keystore")
                storePassword "password"
                keyAlias "MyReleaseKey"
                keyPassword "password"
            }
        }
        buildTypes {
            release {
                ...
                signingConfig signingConfigs.release
            }
        }
    }
    

關鍵點就在於buildTypes的release版本中知名簽名配置:signingConfig signingConfigs.release

配置完簽名信息後再次Build -> Build Bundle(s)/APK(s) -> Build APK(s)得到可以正常安裝的app-release.apk。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章