更新Android Studio到版本2.2後,我還得到了Gradle插件更新(它是2.1.3):Android Studio 2.2更新:對齊APK(zipAlign)不使用新的Gradle插件2.2.0
...
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'
}
}
但沒有任何更改。有任何想法嗎?在項目層面build.gradle
我 「解決」 義無反顧地
classpath 'com.android.tools.build:gradle:2.1.3'
。
EDIT(20160922):
由於Fayder弗洛雷斯他的迴應。這是正確的,構建環境現在只生成一個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)
}
}
我得到的「_unaligned」附加到輸出文件名,所以我想這是output.zipAlign
false
。
那麼輸出文件是否真的對齊?
EDIT(20161013)
感謝ending0421,它是建議使用的構建工具來檢查APK:
的zipalign -c -v 4路徑/文件名
現在我現在認爲APK正確生成了和zipalign命令syays:
驗證成功的
我驗證了output.zipalign始終爲空,因此if條件得到滿足,並且生成的apk名稱包含後綴「_unaligned.apk」(按照OP中的代碼)。然而結果文件是zipaligned。 – drulabs