【发布时间】:2017-08-29 22:40:34
【问题描述】:
我最近升级到了 Android Studio 2.3,现在我将使用 Build / Generate signed APK... 为我现有的一个应用程序生成一个签名的 APK,就像我一直做的那样。之前我总是得到一个名为MyApp-1.0.apk 的文件(其中1.0 是版本名称),但现在我得到了MyApp-1.0-unaligned.apk。
我注意到有一些新选项可供选择 V1 (Jar signature) 和/或 V2 (Full APK Signature。我都选择了recommended in the documentation。但是文档确实这样说
注意:如果您使用 APK 签名方案 v2 对您的应用进行签名并对该应用进行进一步更改,则该应用的签名将失效。因此,请在使用 APK 签名方案 v2 对您的应用进行签名之前使用 zipalign 等工具,而不是之后。
在我的build.gradle 我有
buildTypes {
debug{
// Enable/disable ProGuard for debug build
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
zipAlignEnabled true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
zipAlignEnabled true
}
}
我看到一些人在使用 Android gradle 构建工具的 alpha 版本时遇到了类似的问题,但我使用的是2.3.0:
classpath 'com.android.tools.build:gradle:2.3.0'
那么,我如何在 APK 生成过程中对我的 APK 进行 zipalign,然后再对它们进行签名?
【问题讨论】:
-
你能输出“zipalign -c -v 4
”的结果吗? -
我虽然自 Android 2.2.0 以来它不会产生未对齐的版本。 code.google.com/p/android/issues/detail?id=223551
-
@ Isuru
zipalign -c -v 4 <path-to-apk>返回一长串行,最后在底部是Verification succesful[原文如此]。我认为文档说您不能压缩已使用 V2 签名的应用程序?顺便说一句,我正在使用构建工具 25.0.2。多年来一直在 Android Studio 中使用菜单命令进行签名,没有任何问题,但我最近更新了 Android Studio、构建工具、SDK,一切...... -
我遇到了同样的问题,我确实创建了一个 C# 程序来编译未对齐的 apk 以发布版本。但我不知道为什么在新版本的 Android Studio 中会出现这种情况。
-
@Isuru 问题解决了,我的错,看我的答案...
标签: android android-studio apk android-studio-2.3 zipalign