Intereting Posts
Использование акселерометра, гироскопа и компаса для расчета движения устройства в 3D-мире Weird parse crash android – попытка вызвать виртуальный метод 'int java.lang.Integer.intValue () В чем разница между файлом `export signed` и` unsigned` .apk? Как изменить цвет текста в середине предложения в android Что делает второй параметр в AddHeaderView в классе ListView? Уведомлять после завершения воспроизведения звука Логика для использования нескольких веб-просмотров в TabLayout для решения проблемы памяти Несколько RecyclerView в одном фрагменте Большая поддержка файлов не работает на Android Скрыть / показать фрагмент без фрагментации Показывать ход окна, но не ActionBar Progress (с использованием библиотеки совместимости v7) Регистрация GCM с двумя разными идентификаторами работы Как проверить мое приложение на Android 2.3.5? Фильтрация курсора в правильном направлении? Как установить RecyclerView в виджет Android

Обновление Android Studio 2.2: выровненный APK (zipAlign), не сгенерированный с использованием нового Gradle Plugin 2.2.0

После обновления 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 .

EDIT (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 .

Итак, выходной файл действительно выровнен?

EDIT (20161013)

Благодаря end0421 и предложению проверить apk с помощью инструмента построения:

Zipalign -c -v 4 path / fileName

Теперь я теперь, когда APK генерируется правильно, и команда zipalign syays:

Проверка завершена

Согласно этому форуму: https://code.google.com/p/android/issues/detail?id=212591

«Привет, мы больше не генерируем неприглаженные апки. В рамках улучшения скорости работы мы генерируем apk, уже выровненный. Итак, вместо двух вы просто получаете финальную версию.

@ Yair.kikielka Спасибо. "

Ответить EDIT (20160922):

Итак, выходной файл действительно выровнен?

Да ! Вы можете проверить использование

Zipalign -c -v 4 path / fileName

Когда вы запускаете эту команду в файлах apk, которые генерируются версией gradle> = 2.2, вы получите «Verification succesful». Это означает, что он уже выровнен.