我正在使用android studio版本2.2.2和gradle版本2.2.2开发Android应用程序。我正在尝试生成签名的APK。我做了使用Android Studio生成签名APK的常规流程。之后,我做了Zipalign
个过程。生成的APK在Android 6下工作正常。但在Android 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的签名。我做错了吗?需要一些帮助。
答案 0 :(得分:13)
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将为您的发布版本生成已经拉链对齐的APK。
如果您需要运行zipalign,请在APK签名之前执行。请参阅https://developer.android.com/studio/command-line/zipalign.html和https://developer.android.com/studio/publish/app-signing.html#signing-manually。
在build.gradle文件中禁用v2签名。请参阅https://developer.android.com/studio/releases/gradle-plugin.html,特别是v2SigningEnabled。
答案 1 :(得分:0)
对于在签署离子应用程序时遇到此错误的任何人,请使用these instructions.
对其进行签名