使用官方 bash 命令在 Azure DevOps 托管代理上下载和启动 Android 模拟器时,遇到连续超时错误vmImage: macos-latest。根据文档,它应该启动模拟器,然后继续在后台运行模拟器。
这是我在.yml文件中的定义。
pool:
vmImage: 'macos-latest'
[...]
- script: |
echo "y" | $ANDROID_HOME/tools/bin/sdkmanager --install "system-images;android-29;google_apis;x86"
echo "no" | $ANDROID_HOME/tools/bin/avdmanager create avd --force --name emu --device "Pixel_API_29_AOSP" -k 'system-images;android-29;google_apis;x86'
$ANDROID_HOME/emulator/emulator -list-avds
condition: ne(variables.AVD_IMAGES_RESTORED, 'true')
displayName: 'Download Android Emulator Image'
env:
JAVA_HOME: $(JAVA_HOME_8_X64)
PATH: $(JAVA_HOME_8_X64)/bin:$(PATH)
- script: |
echo "Starting emulator"
nohup $ANDROID_HOME/emulator/emulator -avd emu -no-snapshot -no-audio -no-boot-anim -accel auto -gpu auto -qemu -lcd-density 420 > /dev/null 2>&1 &
$ANDROID_HOME/platform-tools/adb wait-for-device shell 'while [[ -z $(getprop sys.boot_completed | tr -d '\r') ]]; do sleep 1; done; input keyevent 82'
$ANDROID_HOME/platform-tools/adb devices
echo "Emulator started"
displayName: 'Android Emulator'
Run Code Online (Sandbox Code Playgroud)
这些是在作业因超时(60 分钟)而被取消之前输出的日志:
Starting: Android Emulator
==============================================================================
Task : Bash
Description : Run a Bash script on macOS, Linux, or Windows
Version : 3.198.0
Author : Microsoft Corporation
Help : https://learn.microsoft.com/azure/devops/pipelines/tasks/utility/bash
==============================================================================
Generating script.
========================== Starting Command Output ===========================
/bin/bash /Users/runner/work/_temp/3b8f2c22-dd8f-40ad-9cf0-972eca407beb.sh
Starting emulator
* daemon not running; starting now at tcp:5037
* daemon started successfully
Run Code Online (Sandbox Code Playgroud)
有谁有让 Android 模拟器脚本运行的经验吗macos-latest?为了让它正常工作,我们还缺少什么吗?令人惊讶的是,DevOps 文档中提到的脚本没有按预期工作。
Azure DevOps 文档和示例脚本: https://learn.microsoft.com/en-us/azure/devops/pipelines/ecosystems/android? view=azure-devops#test-on-the-android-emulator
小智 1
我有同样的问题。我将 vmImage 更改为特定的一个。然后就成功了。您可以尝试其他 macOS 版本,更多信息请参见Microsoft 托管代理。我还建议在每个有问题的命令之后添加回显行以在管道中进行调试。
pool:
vmImage: macOS-11
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1038 次 |
| 最近记录: |