Обновление Android Studio 2.2: выровненный APK (zipAlign) не создается с помощью нового Gradle Plugin 2.2.0
После обновления Android Studio до версии 2.2 я также получил обновление для Gradle Plugin (это было 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'
}
}
но ничего не меняется. Есть идеи?
Я "решил", возвращаясь к
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)
}
}
Я получаю "_unaligned" добавленный к имени выходного файла, так что я предполагаю, что output.zipAlign
является false
,
Так действительно ли выходной файл выровнен?
РЕДАКТИРОВАТЬ (20161013)
Благодаря end0421 и предложению проверить apk с помощью инструмента сборки:
zip align -c -v 4 путь / имя_файла
Теперь я понял, что APK сформирован правильно, а команда zip align:
Проверка успешна
2 ответа
По данным этого форума: https://code.google.com/p/android/issues/detail?id=212591
"Привет, мы больше не генерируем не выровненные apks. В рамках улучшений, направленных на ускорение, мы генерируем apk уже выровненным. Так что вместо двух, вы просто получаете последний.
@ yair.kikielka Спасибо."
Ответить РЕДАКТИРОВАТЬ (20160922):
Так действительно ли выходной файл выровнен?
Да! Вы можете проверить, используя
zipalign -c -v 4 путь / имя_файла
Когда вы запустите эту команду для apk-файлов, созданных в версии Gradle>=2.2, вы получите "Проверка успешна" . Это значит, уже выровнены.