I try to upload my app to gplay but fail because my apk doesn't zipaligned. i try to zipalign but i got verification failed. really don't have idea, someone please tell me what to do. thanks in advance.
-
This will also helps you [see this ](http://stackoverflow.com/a/38055015/1978475) – Vrajesh Jul 01 '16 at 17:11
-
Don't include images of text--just copy and paste the text instead! – Jonathan Hall Jun 01 '18 at 13:55
7 Answers
I found an easier way - just align from commandline.. TWICE! After aligning two times I was able to upload my apk.
Delete the OLD file and Rename the Second One and Align it Again..

- 341
- 2
- 7
-
3It works. It's a bit depressing that those kind of workarounds are needed. – Diego Jan 05 '17 at 15:19
-
1what ? really... After 2.3.x plugin release, they've removed option to disable zipalign so you no longer can do it manually from scratch. This created a problem with debug builds - calling zipalign fails with output above. Strangely, release builds are not affected. You saved my day - I was thinking about this issue for years and finally how a workaround. – Oleksandr Oct 22 '17 at 22:00
-
1
-
In case someone else has the same problem with gradle plugin '3.6.0' and later and because I spent several hours trying to track this down.
Gradle Plugin 3.6.0 is page aligning and packaging your native libraries uncompressed https://developer.android.com/studio/releases/gradle-plugin?hl=el#3-6-0
The fix is to disable the uncompressed packaging of your native libraries by adding
android:extractNativeLibs="true"
to your AndroidManifest.xml as an attribute on the application tag.

- 806
- 5
- 14
No need to manually, do this:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
zipAlignEnabled true
//uncomment for automatically zip aligned by studio
}
}
build.gradle
set classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
to
classpath 'com.android.tools.build:gradle:2.1.2'
see my answer here
Try below suggestion
buildTypes {
release {
}
debug{
debuggable false
}
}
Or set Attribute in Manifest android:debuggable="false" Generate build and run zipalign tool Verification Success.

- 5,236
- 2
- 19
- 27
This issue will come when you are trying to zipalign and sign a debug apk.
That is not a good idea.
Instead use the command
./gradlew assembleRelease
to generate release unsigned apk. Then zipalign the output apk.
Or use the answer given by @Nilesh Senta

- 81
- 2
- 7
A little late to the party, but recently had the same issue when aligning the unsigned apk from command line. The zipalign command failed as I had the following code in the gradle file -
buildTypes {
debug {
debuggable true
}
release {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
Zipalign was failing, but wasn't pointing to the fact that a release version cannot be marked as debuggable
. Android Studio Build > Generate Signed Bundle / APK
had no issues when the release version was marked as debuggable
, so it must be overwriting some of the gradle configurations during the generation of the signed APK.
Hope this helps someone.

- 444
- 8
- 17
I had read that you needed to align the APK before signing; that if you sign first, then align, it would break the signature. That was false information. Sign first, then zipalign, then upload.

- 37,688
- 6
- 92
- 107
-
1You absolutely can break your signature if you align after you sign it. Just because it works in your one instance doesn't mean it can't break the signature. The situation that causes it to break is a bit of an edge case, but if you ever get a random signature mismatch when installing the app it very likely would be because you are signing before aligning. – Nicholas Hall Jun 02 '20 at 16:35