После обновления 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'
}
}
но ничего не меняется. Любые идеи?
Я «решил» вернуться к
classpath 'com.android.tools.build:gradle:2.1.3'
на уровне проекта build.gradle
.
ИЗМЕНИТЬ (20160922):
Спасибо Файдеру Флоресу за ответ. Это правильно, среда сборки теперь создает только один 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)
Спасибо ending0421 и предлагаю проверить apk с помощью инструмента сборки:
zipalign -c -v 4 путь/имя файла
Теперь я понял, что APK сгенерирован правильно и команда zipalign говорит:
Проверка прошла успешно