You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins归档多变体APK求助:paidA/paidB的Debug/Release APK归档失败

问题解决:Jenkins归档Android多变体APK失败

原脚本的核心问题

  1. 单独的sh "cd ${env.WORKSPACE}"无意义:每个sh步骤是独立的Shell进程,目录切换不会延续到后续步骤。
  2. Zip命令参数错误:-i builds没有匹配到实际APK文件,且未指向APK的真实生成路径(Android项目APK默认在app/build/outputs/apk/[变体]/目录下)。

两种可行解决方案

方案1:直接归档APK(无需手动打包Zip)

Jenkins的archiveArtifacts支持直接指定多个文件路径,无需手动压缩:

// 替换app为你的项目模块名,路径根据实际结构调整
archiveArtifacts artifacts: '''
app/build/outputs/apk/paidA/debug/*.apk,
app/build/outputs/apk/paidA/release/*.apk,
app/build/outputs/apk/paidB/debug/*.apk,
app/build/outputs/apk/paidB/release/*.apk
''', onlyIfSuccessful: true

方案2:手动打包Zip后归档

如果必须打包成单个Zip文件,确保cd和zip在同一个Shell进程执行(用多行脚本包裹):

sh """
cd ${env.WORKSPACE}
// 打包所有目标APK到builds.zip
zip -r builds.zip \
app/build/outputs/apk/paidA/debug/*.apk \
app/build/outputs/apk/paidA/release/*.apk \
app/build/outputs/apk/paidB/debug/*.apk \
app/build/outputs/apk/paidB/release/*.apk
"""
archiveArtifacts artifacts: 'builds.zip', onlyIfSuccessful: true

注意事项

  • 若你的项目主模块不是app,替换为实际模块名称(如module-paid)。
  • 可以通过Jenkins构建日志的assemble步骤输出,或登录服务器查看目录,确认APK的准确路径。

内容的提问来源于stack exchange,提问作者IamVariable

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 09:23:18