Xamarin.Forms Android项目在两台机器上本地构建和运行;在Visual Studio Team Services

时间:2017-07-26 20:47:12

标签: xamarin.forms xamarin.android azure-devops .net-standard

我有一个解决方案,其中包含一个ASP.Net Core web-api项目,一个带有Android,iOS和Shared Netstandard库项目的Xamarin.Forms应用程序,以及Xamarin应用程序和之间共享的其他5个NetStandard库。 ASP.Net核心应用程序。

我能够在两台不同的本地计算机上编译和运行Android应用程序,一台是Windows 10,另一台是macOS Sierra。当我使用Visual Studio Team Services(VSTS)从BitBucket克隆存储库并构建Android项目时,由于Android资源文件问题,它无法构建。我认为问题在于我没有正确配置VSTS,因为这样可以在两台不同的机器上运行而没有问题。我不确定我在VSTS中错误配置了什么来解决这个问题。

如果有人需要,我有complete reproducible project available for download上传到VSTS。

构建输出很大,所以我在下面用VSTS中的a link to the entire build output包含了错误。

  

" d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj" (PackageForAndroid目标)(1) - >   (_UpdateAndroidResgen target) - >   Resources \ values \ styles.xml(2):错误APT0000:检索项目的父项时出错:找不到与给定名称匹配的资源' Theme.AppCompat.Light.DarkActionBar'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(3):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorAccent'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(2):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorPrimary'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(2):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorPrimaryDark'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(2):错误APT0000:错误:找不到与给定名称匹配的资源:attr' windowActionBar'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(4):错误APT0000:错误:找不到与给定名称匹配的资源:attr' windowActionModeOverlay'。 > [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(2):错误APT0000:错误:找不到与给定名称匹配的资源:attr' windowNoTitle'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(4):错误APT0000:检索项目的父项时出错:找不到与给定名称匹配的资源' Theme.AppCompat.Light.Dialog'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(4):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorAccent'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(5):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorAccent'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(4):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorPrimary'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(4):错误APT0000:错误:找不到与给定名称匹配的资源:attr' colorPrimaryDark'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]   Resources \ values \ styles.xml(5):错误APT0000:检索项目的父项时出错:找不到与给定名称匹配的资源' Theme.AppCompat.Light.NoActionBar'。 [d:\一个\ 1 \ S \ DOTNET \ APPS \移动\ Mobile.Android \ Mobile.Android.csproj]

以下是我的VSTS构建定义:

NuGet Restore

enter image description here

Android版

enter image description here

定义选项

enter image description here

我的配置错误导致VSTS中的Android资源失败,但在本地构建时却没有?

本地环境

  • 视窗
    • 操作系统:Windows 10
    • Visual Studio 2017 15.3预览3
    • dotnet --version:1.1.0-preview1-005051
  • 的Mac
    • 操作系统:Sierra 10.12.5
    • 适用于Mac社区的Visual Studio - 7.1预览版(内部版本583)
      • Alpha Channel
    • dotnet --version:2.0.0-preview3-006815

应用信息

  • Xamarin.Forms共享NetStandard库包:
    • Xamarin.Forms:2.3.5.256-pre6
    • NetStandard.Library:1.6.1
  • Xamarin.Android包
    • Xamarin.Android.Support.Design:25.3.1
    • Xamarin.Android.Support.v4:25.3.1
    • Xamarin.Android.Support.v7.AppCompat:25.3.1
    • Xamarin.Android.Support.v7.CardView:25.3.1
    • Xamarin.Android.Support.v7.MediaRouter:25.3.1
  • Xamarin.Android Framework

    • MonoAndroid,Version = v7.1
  • 最低Android版本:4.4,API等级19

  • 目标Android版本:7.1,API等级25
  • 目标框架:7.1

最后的想法

我正在使用project.json来为Xamarin.Android和Xamarin.iOS项目提供nuget包而不是packages.config,所以我可以使用传递依赖。我需要在VSTS中配置我的两个环境吗?我也使用了两个不同版本的dotnet core,没有任何问题,所以我真的很困惑这里发生了什么。

1 个答案:

答案 0 :(得分:2)

使用" Visual Studio Build"任务而不是" Xamarin.Android"运行构建的任务。如果要生成apk包,请在任务中添加/t:PackageForAndroid参数。 enter image description here