1. 程式人生 > >Android Studio 打包apk後應用未安裝

Android Studio 打包apk後應用未安裝

本文轉載地址 http://blog.csdn.net/sinat_14849739/article/details/76383281

前言

Android 要求所有 APK 必須先使用證書進行數字簽署,然後才能安裝。當然這麼做的原因是為了保證APK的唯一性,安全性。本文主要介紹在android Studio2.3+打包apk後應用未安裝的解決辦法。

Android Studio2.3+簽名打包,應用未安裝

這幾天在整專案的時候發現一個問題,通過Android Studio2.3+打包出來的apk,在android7.0+的手機上安裝正常,但是在android7.0以下的均顯示應用未安裝,或者用PC工具都顯示安裝失敗。

在studio2.3版本以上打包會發現與之前的打包不一樣了,下面多了一項Signature Versions的選擇,如下圖:

簽名打包.png

經過打包實踐會發現:

  • 如果只選V1,打包之後的apk在android7.0+或者7.0以下的手機安裝均正常;

  • 如果只選V2,打包之後的apk在android7.0+的手機上安裝正常,在android7.0以下的手機安裝失敗。

  • 如果同時勾選V1,V2,打包後的apk在android7.0+或者7.0以下的手機安裝也都正常;

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 僅使用傳統簽名方案來簽署您的應用。

android {
    ...
    defaultConfig { ... }
    signingConfigs {
      release {
        storeFile file("myreleasekey.keystore"
) storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

所以要使用傳統的方式簽名的話,我們只需要在簽名配置的release下新增:v2SigningEnabled false即可。或者個人建議打包時只選擇V1。

總結

  • 1、在開發的過程中遇到一些問題,多查閱官方API或文件。

  • 2、及時瞭解Android和Android Studio新版的特性,便於解決因版本不同帶來的各種問題。

  • 3、多親自實踐,積累經驗。

參考閱讀