未设置ANDROID_HOME(在OS X上作为服务运行的VSTS代理)

Mau*_*kom 4 macos android azure-devops azure-pipelines-build-task azure-pipelines

我已经在我的MacBook Pro上配置了VSTS代理,当我手动运行它(使用./run.sh)时,它可以正常工作.

但是,当我将VSTS代理配置为作为服务运行(使用./svc.sh install和./svc.sh start)并在VSTS中对新构建进行排队时,我收到错误(在签名步骤中)"ANDROID_HOME未设置".

我在.bash_profile中配置了以下内容:

export ANDROID_HOME=/Users/$(whoami)/Library/Android/sdk
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
Run Code Online (Sandbox Code Playgroud)

路径正确并且还运行echo $ANDROID_HOME返回预期值(在本例中/Users/mvanbeusekom/Library/Android/sdk).

有人知道什么可能是错的吗?

Nov*_*Joe 14

在您的代理文件夹中,有一个名为runsvc.sh的文件.在那里添加您的导出.您会看到一条注释掉的行,提示您将env设置放在何处:

# insert anything to setup env when running as a service
export ANDROID_HOME=/Users/$(whoami)/Library/Android/sdk
Run Code Online (Sandbox Code Playgroud)

确保重新启动该服务.

原因.bash_profile不起作用是因为服务在运行时无权访问.

我遇到了同样的问题,并在此处找到了解决方案:https://github.com/Microsoft/vsts-tasks/issues/1726#issuecomment-219725321

对于那些使用Xamarin开发的人来说,通常需要这样:

# insert anything to setup env when running as a service
export ANDROID_HOME=/Users/$(whoami)/Library/Developer/Xamarin/android-sdk-macosx
Run Code Online (Sandbox Code Playgroud)

  • 此外,如果您不是在服务中运行它,您可以直接将此行添加到您的 run.sh 中。我今天遇到了这个问题,无论我做什么,除非我在那里添加它,否则它不会被发现。 (2认同)