答案 0 :(得分:11)
我找到了一种更简单的方法 - 只需从命令行对齐.. TWICE!在对齐两次后,我能够上传我的apk。
删除旧文件并重命名第二个并重新对齐..
答案 1 :(得分:5)
无需手动执行此操作:
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'
到
classpath 'com.android.tools.build:gradle:2.1.2'
请参阅我的回答here
答案 2 :(得分:4)
以防其他人在gradle插件“ 3.6.0”及更高版本中遇到相同的问题,并且因为我花了几个小时试图对其进行跟踪。
Gradle Plugin 3.6.0是页面对齐和未压缩的本地库打包 https://developer.android.com/studio/releases/gradle-plugin?hl=el#3-6-0
解决方法是通过添加来禁用本机库的未压缩打包
android:extractNativeLibs="true"
作为应用程序标签上的属性添加到您的AndroidManifest.xml。
答案 3 :(得分:3)
尝试以下建议
buildTypes {
release {
}
debug{
debuggable false
}
}
或者在Manifest中设置属性android:debuggable =" false" 生成构建并运行zipalign工具验证成功。
答案 4 :(得分:0)
聚会晚了一点,但是最近在从命令行对齐未签名的apk时遇到了同样的问题。 zipalign命令失败,因为我在gradle文件中有以下代码-
buildTypes {
debug {
debuggable true
}
release {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
Zipalign失败,但没有指出发行版本不能标记为debuggable
的事实。当发行版本标记为Build > Generate Signed Bundle / APK
时,Android Studio debuggable
没问题,因此在签名的APK生成期间,它必须覆盖某些gradle配置。
希望这对某人有帮助。
答案 5 :(得分:0)
当您尝试zipalign并签署调试apk时,就会出现此问题。
那不是一个好主意。
代替使用命令
./gradlew assembleRelease
生成发布未签名的APK。然后压缩输出的apk。
或使用@Nilesh Senta给出的答案
答案 6 :(得分:0)
我已阅读到您需要在签名之前对齐APK;如果您先签名然后对齐,则会破坏签名。那是虚假的信息。首先签名,然后zipalign,然后上传。