【问题标题】:VSTS Build Definition for Android failingAndroid 的 VSTS 构建定义失败
【发布时间】:2017-02-22 01:28:33
【问题描述】:

我开始为 Xamarin Android 应用使用 Team Services 中的构建定义。在 Visual Studio 中一切正常,我可以将代码签入 VS Team Services。

更新 1

现在,正在为我的项目创建构建定义,它正在下降。

这是日志的一部分:

2016-10-13T03:30:45.7198826Z 考虑将“Xamarin.Forms.Xaml,Version=2.0.0.0,Culture=neutral,processorArchitecture=MSIL”作为文件名,但它不存在。

2016-10-13T03:30:45.7748834Z 2>C:\a\1\s\DentalLife\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45 +wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.targets(40,3):错误MSB4062:无法从程序集C加载“Xamarin.Forms.Build.Tasks.FixedCreateCSharpManifestResourceName”任务:\a\1\s\DentalLife\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Build.Tasks。 dll。无法加载文件或程序集 'file:///C:\a\1\s\DentalLife\packages\Xamarin.Forms.2.3.1.114\build\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10 +Xamarin.iOS10\Xamarin.Forms.Build.Tasks.dll' 或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。 [C:\a\1\s\DentalLife\DentalLife\DentalLife\DentalLife.csproj]

2016-10-13T03:30:45.7778918Z 2>完成建筑项目“C:\a\1\s\DentalLife\DentalLife\DentalLife\DentalLife.csproj”(默认目标)- - 失败。

2016-10-13T03:30:45.7808866Z 1>完成建设项目“C:\a\1\s\DentalLife\DentalLife\DentalLife.Droid\DentalLife.Droid.csproj”( clean;PackageForAndroid 目标)——失败。

2016-10-13T03:30:45.8018852Z

2016-10-13T03:30:45.8018852Z 构建失败。

之后,几天试图找到任何信息,我发现了以下 stackoverflow 链接:

  1. Visual Studio Team Services - Build fails, definition wrong?
  2. TFS remains out of sync after Get Sources step

基本上,他们在那些帖子中提到这可能是一个与安全相关的问题。

我尝试遵循从更改权限到更改某些参数(例如构建作业授权范围)的所有建议。但到目前为止一切顺利:-(

更新 2

经过大量尝试并在 Internet 上查找后,我发现问题在于托管代理的 Xamarin.Froms 版本不同。然后我找到了这篇帖子http://www.blogaboutxamarin.com/xamarin-devops-with-vsts-setup-a-cross-platform-build-agent-on-windows/,在那里我创建了一个本地代理,并且 Xamarin.Forms 版本更新为 6.1.1。之后,我能够将构建全部排成绿色 :-)

但是,我决定在我的解决方案中将 Xamarin.Forms 版本升级为 2.3.1.114,因为我需要使用该版本中可用的类。在本地,它可以构建并运行良好。

现在,问题再次出现在 VSTS 中的代理构建。这次向我展示了一个不同的错误。有一些dll找不到:

obj\Release\android\src\mono\android\support\v7\internal\widget\ActivityChooserModel_OnChooseActivityListenerImplementor.java:8:错误:包 android.support.v7.internal.widget.ActivityChooserModel 不存在 obj\Release\android\src\mono\android\support\v7\internal\widget\ActivityChooserModel_OnChooseActivityListenerImplementor.java:33:错误:包 android.support.v7.internal.widget 不存在 2016-10-17T02:26:08.1053649Z 私有原生布尔 n_onChooseActivity (android.support.v7.internal.widget.ActivityChooserModel p0, android.content.Intent p1);

在我的 Android 项目中,我有:

最后,这是 GitHub 存储库的链接,您可以在其中找到代码: https://github.com/Lesthad/CIXamarinShowTest

任何帮助将不胜感激。感谢和抱歉这篇长篇文章:-(

【问题讨论】:

  • 该文件夹中是否存在 Xamarin.Forms.Build.Tasks.dll?你用的是什么项目模板?您可以在 OneDrive 上提供创建项目和添加包或共享一个简单项目的详细步骤。
  • 你能分享整个构建日志吗?您可以通过“以 zip 格式下载所有日志”按钮获取它。
  • 基于我对一个简单 Android 项目的测试(新项目=>Visual C#=>Android=>Blank App (Android) with Xamarin.Forms package (Install-Package Xamarin.Forms),我不能重现该问题(本地构建代理和托管构建代理)。最好您可以在 OneDrive 上共享一个简单的项目,我们会检查它。
  • 你能在 OneDrive 上分享一个简单的项目吗?
  • 嗨@starain,抱歉耽搁了。我试图让它发挥作用。我用最新信息更新了原始帖子以及可以找到代码的 GitHub 链接。

标签: build azure-devops tfsbuild tfs-2015 build-definition


【解决方案1】:

解决方案是您需要在构建定义的 Xamarin.Android 步骤中指定 JDK 版本。

【讨论】:

    猜你喜欢
    • 2017-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多