最近,我创建了一个池代理来自动化TFS中Xamarin Forms (Android)的构建定义。尽管几乎所有步骤都运行成功,但签名和对齐apk步骤会抛出一个错误:

根据错误,在C:\agent_work\1\b\release*.apk中没有找到apk,但是在构建过程中,我转到文件夹将其签出,我找到了这个文件:

我不能理解为什么会出错。请帮帮忙!下面是步骤的构建定义:

发布于 2017-03-09 03:57:06
我解决了这个问题:
APK文件的签名过程依赖于名为jarsigner的Java工具。我的Xamarin项目在Visual Studio中执行的java编译是使用JDK8(Java)完成的,但是,当检查Team 1.8.0_111构建代理编译所使用的JDK版本时,它依赖于在Team Services中安装代理时从系统中识别的环境变量,并将它们注册到功能中。%JAVA_HOME%使用的是JDK7构建路径,与Visual Studio用于相同解决方案的路径不同:

Visual Studio解决方案:

实际上,我的PC上安装了两个Java版本,并且由于从第一次安装代理以来,系统功能已经内置于Visual Team Services中,因此它可以识别在%JAVA_HOME%操作系统的环境变量中配置的路径,因此有必要调整此变量的路径,卸载代理,然后重新安装它。随后,编译已经生成了其他错误:未设置JAVA_HOME,未设置ANDROID_HOME。这是通过将它们添加为Team Services中的预定义变量来解决的:

就是这样!成功构建:

https://stackoverflow.com/questions/42658381
复制相似问题