1. 程式人生 > >ADB安裝,簽名問題,Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

ADB安裝,簽名問題,Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

這個問題,到現在還沒有在網上看見答案,經過一段時間的摸索,查閱官方資料,被我發現了原因.

工作環境:

androidstudio2.3

jdk1.8

問題描述:

打包簽名,生成app.apk檔案,在安裝app.apk時,總是安裝不成功,提示如下:

d:/app.apk: 1 file pushed. 41...B/s (2423010 bytes in 0.056s)
WARNING: linker: libdvm.so has text relocations. This is wasti
ng memory and is a security risk. Please fix.
        pkg: /data/local/tmp/app.apk
Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

分析問題:

查閱網際網路,發現方法都不好使,經過查閱官方文件,發現:

以下一段是官方開發文件中的一段:

APK signature scheme v2

Android 7.0 引入一項新的應用簽名方案 APK Signature Scheme v2,它能提供更快的應用安裝時間和更多針對未授權 APK 檔案更改的保護。在預設情況下,Android Studio 2.2 和 Android Plugin for Gradle 2.2 會使用 APK Signature Scheme v2 和傳統簽名方案來簽署您的應用。

雖然我們建議您對您的應用採用 APK Signature Scheme v2,但這項新方案並非強制性的。如果您的應用在使用 APK Signature Scheme v2 時不能正確開發,您可以停用這項新方案。禁用過程會導致 Android Studio 2.2 和 Android Plugin for Gradle 2.2 僅使用傳統簽名方案來簽署您的應用。要僅用傳統方案簽署,開啟模組級 build.gradle

 檔案,然後將行 v2SigningEnabled false 新增到您的版本簽名配置中:

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

注意:如果您使用 APK Signature Scheme v2 簽署您的應用,並對應用進行了進一步更改,則應用的簽名將無效。出於這個原因,請在使用 APK Signature Scheme v2 簽署您的應用之前、而非之後使用 zipalign

 等工具。

如需瞭解詳細資訊,請閱讀相關的 Android Studio 文件,這些文件介紹瞭如何在 Android Studio 中簽署應用以及如何使用 Android Plugin for Gradle 為簽署應用配置構建檔案

分析開發文件,不難發現,這是android7.0的新特性,也是androidstudio預設簽名的方式,採用了APK Signature Scheme v2這種簽名方式.所以不難解決了.

解決問題:

build→generate signed apk→填寫資訊,next→輸入密碼→signature versions勾選V1

然後生成的apk就沒有問題了