Azure AppCenter:Android构建成功但未找到APK文件
Debug构建已显示成功完成,但后续Android Postprocess步骤报错,提示指定的APK目录不存在,找不到生成的APK文件。相关日志片段:
BUILD SUCCESSFUL in 4m 28s 130 actionable tasks: 124 executed, 6 up-to-date
##[section]Finishing: Gradle Task
##[section]Starting: Android Postprocess[command]/bin/bash /Users/runner/runners/2.206.1/scripts/android-postprocess.sh /Users/runner/work/1/s/build/outputs/apk
Removing all ABI or density dependent APKs…
find: /Users/runner/work/1/s/build/outputs/apk: No such file or directory
find: /Users/runner/work/1/s/build/outputs/apk: No such file or directory
find: /Users/runner/work/1/s/build/outputs/apk: No such file or directory
Found 0 APK file(s)
Found 0 unaligned APK file(s)
find: /Users/runner/work/1/s/build/outputs/apk: No such file or directory
/Users/runner/runners/2.206.1/scripts/android-postprocess.sh: line 36: pushd: /Users/runner/work/1/s/build/outputs/apk/..: No such file or directory
/Users/runner/runners/2.206.1/scripts/android-postprocess.sh: line 43: popd: directory stack empty
##[error]The process '/bin/bash' failed with exit code 1
##[error]Bash failed with error: The process '/bin/bash' failed with exit code 1
##[section]Finishing: Android Postprocess
注:克隆后生成local.properties的bash脚本运行正常,构建过程可正常使用该文件。
排查思路:
- 确认Gradle实际输出目录:在Gradle任务后添加步骤,执行
find /Users/runner/work/1/s -name "*.apk"命令,搜索所有APK文件的实际位置,排查是否生成在非预期路径(如build/outputs/bundle或按flavor拆分的子目录)。 - 检查Gradle构建配置:查看项目
build.gradle文件,确认android块下的variantFilter、outputs配置是否修改了APK输出路径;同时检查是否开启了App Bundle(AAB)构建而非APK,导致无APK生成。 - 验证流水线工作目录一致性:确认Gradle任务的工作目录和后续Postprocess步骤指定的
/Users/runner/work/1/s是否一致,避免因目录错位导致文件找不到。 - 查看完整Gradle构建日志:跳过BUILD SUCCESSFUL摘要,查看Gradle任务执行的详细日志,搜索
apk相关输出,确认APK是否真实生成及生成路径信息。 - 核对构建变体匹配性:确认流水线配置的构建变体为Debug,与实际执行的Gradle任务变体一致,避免因变体不匹配导致输出目录结构差异。
内容的提问来源于stack exchange,提问作者Stelios Papamichail

