Reputation: 848
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.
Upvotes: 9
Views: 12374
Reputation: 836
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.
Upvotes: 10
Reputation: 38422
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.
Upvotes: -2
Reputation: 91
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
Upvotes: 2
Reputation: 444
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.
Upvotes: 1
Reputation: 5472
Try below suggestion
buildTypes {
release {
}
debug{
debuggable false
}
}
Or set Attribute in Manifest android:debuggable="false" Generate build and run zipalign tool Verification Success.
Upvotes: 4
Reputation: 1322
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
Upvotes: 8
Reputation: 441
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..
Upvotes: 31