将Android Studio更新到2.2版后,我还获得了Gradle插件的更新(它是2.1.3):
...
classpath 'com.android.tools.build:gradle:2.2.0'
...
我看到未对齐的变体APK文件,但不再生成其他变体。我尝试启用zip对齐:
buildTypes {
release {
minifyEnabled false
zipAlignEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix '.debug'
}
}
但没有任何改变。有什么想法吗?
我"解决了#34;回到
classpath 'com.android.tools.build:gradle:2.1.3'
项目级别build.gradle
。
编辑(20160922):
感谢Fayder Florez 的回复。没错,构建环境现在只生成一个apk(https://code.google.com/p/android/issues/detail?id=212591)。
但是使用代码(使用VERSION CODE
和VERSION NAME
重命名输出文件名):
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
def padVersionCode = variant.versionCode.toString();
padVersionCode = padVersionCode.padLeft(5, '0')
def newApkName = "${output.baseName}_${padVersionCode}-${variant.versionName}"
if (!output.zipAlign)
newApkName = newApkName + "_unaligned"
newApkName = newApkName + ".apk"
output.outputFile = new File(output.outputFile.parent, newApkName)
}
}
我得到了#34; _unaligned"附加到输出文件名,因此我认为output.zipAlign
是false
。
输出文件是否真的对齐了?
编辑(20161013)
感谢ending0421 ,并建议使用构建工具检查apk:
zipalign -c -v 4 path / fileName
现在我现在已正确生成APK 和zipalign命令系统:
验证成功
答案 0 :(得分:7)
根据这个论坛:https://code.google.com/p/android/issues/detail?id=212591
"嗨,我们不再生成未对齐的apks。作为速度改进的一部分,我们生成了已经对齐的apk。所以,而不是两个,你只是得到最后一个。
@ yair.kikielka谢谢。"
答案 1 :(得分:4)
回复编辑(20160922):
输出文件是否真的对齐了?
是的!您可以使用
进行验证zipalign -c -v 4 path / fileName
当您对由gradle版本> = 2.2生成的apk文件运行此命令时,您将获得"验证成功" 。这意味着已经对齐了。