zipalign 正在手动工作,但在 Jenkins 后期构建下失败

Posted

技术标签:

【中文标题】zipalign 正在手动工作,但在 Jenkins 后期构建下失败【英文标题】:zipalign is working manually but failing under Jenkins post build 【发布时间】:2018-02-17 12:10:21 【问题描述】:

。我在 Ubuntu Aws ec2 实例上运行它。请有人可以帮我解决这个问题。

詹金斯输出:

BUILD SUCCESSFUL

Total time: 14.421 secs
Built the following apk(s): 
    /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk
[PP_androidBuild] $ echo '"resolving effective environment"'
[SignApksBuilder] searching environment variable ANDROID_HOME=/opt/android-sdk-linux for zipalign...
[SignApksBuilder] found zipalign in Android SDK's latest build tools: /opt/android-sdk-linux/build-tools/23.0.1/zipalign
[SignApksBuilder] /opt/android-sdk-linux/build-tools/23.0.1/zipalign -f -p 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk
[PP_androidBuild] $ /opt/android-sdk-linux/build-tools/23.0.1/zipalign -f -p 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk
FATAL: [SignApksBuilder] zipalign failed: exit code 1
ERROR: zipalign failed on APK /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk: exit code 1
Finished: FAILURE

在命令提示符下运行时的输出:

jenkins@ip-172-31-22-20:~$  /opt/android-sdk-linux/build-tools/23.0.1/zipalign -f -p 4 /var/lib/jenkins/workspace/PP_androidBuild/PatientPortal/platforms/android/build/outputs/apk/android-debug.apk /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk
jenkins@ip-172-31-22-20:~$ ls -lthr /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk
-rw-r--r-- 1 jenkins jenkins 5.9M Sep  8 14:09 /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk

我进一步调查发现还创建了aligned-android-debug-6100835664895780913.apk:

$ ls -lthr /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk | grep aligned-android-debug-6100835664895780913.apk
-rwxrwxrwx 1 jenkins jenkins 5.9M Sep  8 14:09 /var/lib/jenkins/workspace/PP_androidBuild/SignApksBuilder-out/zipalign/aligned-android-debug-6100835664895780913.apk

那么错误是什么?如何找到并排除故障?

FATAL: [SignApksBuilder] zipalign failed: exit code 1 

【问题讨论】:

有人有解决方案吗? 嗨 @Ashish Karpe,我在 AWS Linux 上遇到了完全相同的问题,但仅限于我的一个项目。与同一 Jenkins 代理签署的其他项目工作正常。所以故障不在于代理,也不在于 Android SDK 构建工具的安装。这是具体的项目。你找到解决办法了吗? @Mig82 我在一些项目中遇到了这个问题,它适用于我以前的 Jenkins 管道 :) .......... 仍在等待解决方案或提示 :) 任何人都有解决方案 【参考方案1】:

问题在于生成的密钥文件

问题

我已经为发布 apk 生成了密钥文件, 但我已将我的 jenkins 构建配置为在调用 gradle 部分生成调试 apk

解决方案

配置jenkins构建(如下所述)生成签名 如果您为发布 apk 生成密钥文件,则发布 apk

一旦你成功配置了buid,你会得到签名的 发布apk

【讨论】:

以上是关于zipalign 正在手动工作,但在 Jenkins 后期构建下失败的主要内容,如果未能解决你的问题,请参考以下文章

zipalign:找不到命令

如何为 mac 获取 zipalign?

Android Studio 2.3 正在生成未对齐的签名 APK 而不是 zipaligned?

我想在每个星期三早上7点BST在Jenkin工具上工作

jenkin的安装

sencha 包无法在发布模式下运行 zipalign