Android - zipalign не работает до apksigner

В настоящее время я выполняю обновление с подписи версии 1 (jarsigner) до подписи версии 2 (apksigner). Jarsigner работал у меня без проблем, однако у меня возникли проблемы с zipalign в моем build.gradle, прежде чем я смог запустить apksigner.

В командной строке я знаю, что есть хак zipalign дважды, который работает для меня.

Однако, когда я запускаю zipalign на Jenkins, я получаю эту ошибку:

Процесс 'command'/Users/admin/Library/Android/sdk/build-tools/27.0.1/zipalign'' завершен с ненулевым выходным значением 1

Что я могу сделать, чтобы заставить zipalign работать, чтобы я мог использовать apksigner?


person Alex Lapeña    schedule 28.02.2018    source источник


Ответы (1)


Я смог прийти к решению с помощью try-catch. Это некрасиво, но это работает.

try {
    println "Zipaligning ${apkFile.name}"
    exec {
        commandLine zipalign, '-f', '4', apkFile.canonicalPath, tempAPK.canonicalPath
    }
} catch (err) {
    // Zipalign twice if first zipalign fails
    exec {
        commandLine zipalign, '-f', '4', tempAPK.canonicalPath, signedAPK.canonicalPath
    }
}
person Alex Lapeña    schedule 01.03.2018