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就沒有問題了