Android签名apk签名V2

Android签名apk签名V2,android,zipalign,signed-apk,Android,Zipalign,Signed Apk,我正在使用AndroidStudio版本2.2.2和gradle版本2.2.2开发Android应用程序。我正在尝试生成签名的APK。我用Android Studio完成了生成签名APK的常规过程。在那之后,我做了Zipalign过程。生成的APK在低于android 6的系统上运行良好。但在安卓N中,安装APK时会显示以下错误: Failed to install C:\Users\User\AppData\Roaming\Skype\My Skype Received Files\a

我正在使用AndroidStudio版本2.2.2和gradle版本2.2.2开发Android应用程序。我正在尝试生成签名的APK。我用Android Studio完成了生成签名APK的常规过程。在那之后,我做了
Zipalign
过程。生成的APK在低于android 6的系统上运行良好。但在安卓N中,安装APK时会显示以下错误:

    Failed to install C:\Users\User\AppData\Roaming\Skype\My Skype Received Files\ap
p-dev3-release_zipalign.apk: Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES: Fail
ed to collect certificates from /data/app/vmdl25816781.tmp/base.apk: META-INF/CE
RT.SF indicates /data/app/vmdl25816781.tmp/base.apk is signed using APK Signatur
e Scheme v2, but no such signature was found. Signature stripped?]

根据文件Android studio 2.2,它自行负责登录签名V1和V2。我做错什么了吗?需要一些帮助。

Gradle的Android插件以及Android Studio 2.2和更新版本默认生成使用v1(JAR签名)和v2方案(APK签名方案v2)签名的APK。对v2签名APK的任何修改都会使其v2签名失效,而Android Nougat(Android 7.0)和更新版本会验证该签名,从而阻止在Android Nougat和更新版本上安装APK

解决方案:

  • 不要在已经签名的APK上运行zipalign——Gradle的Android插件和Android Studio将为您的发布版本生成已经与zip对齐的APK

  • 如果需要运行zipalign,请在APK签名之前执行。见和

  • 在build.gradle文件中禁用v2签名。具体请参见v2SigningEnabled

  • 第3点可能不再有效,因为Android 11要求APK使用v2签名。