ADB安装,签名问题,Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]

时间:2022-09-28 10:58:17

这个问题,到现在还没有在网上看见答案,经过一段时间的摸索,查阅官方资料,被我发现了原因.

工作环境:

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就没有问题了