我尝试将我的应用程序上传到 gplay 但失败,因为我的 apk 没有压缩对齐。我尝试 zipalign,但验证失败。真的不知道,有人请告诉我该怎么做。提前致谢。
7 回答
我找到了一种更简单的方法 - 只需从命令行对齐.. TWICE!对齐两次后,我能够上传我的 apk。
删除旧文件并重命名第二个文件并再次对齐..
无需手动,执行以下操作:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
zipAlignEnabled true
//uncomment for automatically zip aligned by studio
}
}
构建.gradle
set classpath 'com.android.tools.build:gradle:2.2.0-alpha3'
至
classpath 'com.android.tools.build:gradle:2.1.2'
在这里查看我的答案
万一其他人对 gradle plugin '3.6.0' 及更高版本有同样的问题,因为我花了几个小时试图追踪这个问题。
Gradle 插件 3.6.0 正在页面对齐和打包您的原生库未压缩 https://developer.android.com/studio/releases/gradle-plugin?hl=el#3-6-0
修复方法是通过添加禁用原生库的未压缩打包
android:extractNativeLibs="true"
将您的 AndroidManifest.xml 作为应用程序标记上的属性。
试试下面的建议
buildTypes {
release {
}
debug{
debuggable false
}
}
或者在 Manifest 中设置 Attribute android:debuggable="false" Generate build and run zipalign tool Verification Success。
当您尝试 zipalign 并签署调试 apk 时,会出现此问题。
这不是一个好主意。
而是使用命令
./gradlew assembleRelease
生成发布未签名的 apk。然后 zipalign 输出 apk。
或使用@Nilesh Senta 给出的答案
聚会有点晚了,但最近在从命令行对齐未签名的 apk 时遇到了同样的问题。zipalign 命令失败,因为我在 gradle 文件中有以下代码 -
buildTypes {
debug {
debuggable true
}
release {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
Zipalign 失败了,但并没有指出发布版本不能标记为debuggable
. 当发布版本标记为 时, Android StudioBuild > Generate Signed Bundle / APK
没有问题debuggable
,因此它必须在生成签名的 APK 期间覆盖一些 gradle 配置。
希望这可以帮助某人。
我读到您需要在签名之前对齐 APK;如果你先签名,然后对齐,它会破坏签名。那是虚假信息。先签名,然后 zipalign,然后上传。