Android - zipalign 在 apksigner 之前失败

Android - zipalign fails before apksigner

我目前正在从 V1 签名 (jarsigner) 升级到 V2 签名 (apksigner)。 Jarsigner 一直在为我工作没问题,但是在我 运行 apksigner.[= 之前​​,我 运行 在我的 build.gradle 中遇到 zipalign 的问题20=]

在命令行上,我知道 zipalign 有两次破解,这对我有用。

但是,当我在 Jenkins 上 运行ning zipalign 时,我收到了这个错误:

Process 'command '/Users/admin/Library/Android/sdk/build-tools/27.0.1/zipalign'' finished with non-zero exit value 1

我该怎么做才能使 zipalign 正常工作以便我可以使用 apksigner

我能够通过 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
    }
}