MAUI / Xamarin构建失败,并出现“Microsoft.Android.Sdk.Tooling.targets(20,5):error XA0031:Java SDK 11.0 or above is required when using .NET 6”(Microsoft. Android. Sdk. Tooling. targets(20,5):error XA0031:Java SDK 11.0 or above is required when using .NET 6)

yhqotfr8  于 5个月前  发布在  Android
关注(0)|答案(3)|浏览(58)

我们有一个现有的Azure DevOps构建管道,用于.NET Core 7 MAUI Android应用程序,该管道在2023年11月20日之前一直运行良好。我们注意到之前成功的构建使用的是MSBuild版本17.7.3。今天它使用的是17.8.3,我认为这意味着它位于带有新VS映像的服务器上。

MSBuild version 17.8.3+195e7f5a3 for .NET
Build FAILED.
C:\Program Files\dotnet\packs\Microsoft.Android.Sdk.Windows\33.0.95\targets\Microsoft.Android.Sdk.Tooling.targets(20,5): error XA0031: Java SDK 11.0 or above is required when using .NET 6 or higher. Download the latest JDK at: https://aka.ms/msopenjdk`

字符串
看起来这是Visual Studio 2022 17.8.3中Xamarin / MAUI构建的一个突破性变化,如果您正在为NET 7构建,而没有在global.json文件中明确说明(dotnet build步骤明确声明框架-f net7.0-android)。

dzhpxtsq

dzhpxtsq1#

经典DevOps构建步骤

通过在dotnet构建步骤之前添加一个Java工具包步骤来修复它,以显式使用Java 11。只使用Java 11,因为这是最低要求-如果您喜欢,您可以尝试使用最新的Java- v17。
x1c 0d1x的数据
设定值:


YAML脚本

只是添加了@Kuepper对YAML构建步骤的回答。如果他的回答对你有帮助,请给予投票。

- task: JavaToolInstaller@0
    displayName: 'Use Java 17'
    inputs:
      versionSpec: 17
      jdkArchitectureOption: x64
      jdkSourceOption: PreInstalled

字符串

yiytaume

yiytaume2#

这是Azure DevOps的yaml(James Cormack的屏幕截图使用版本11而不是17)

- task: JavaToolInstaller@0
    displayName: 'Use Java 17'
    inputs:
      versionSpec: 17
      jdkArchitectureOption: x64
      jdkSourceOption: PreInstalled

字符串

deikduxw

deikduxw3#

Github动作

我在github上也遇到了同样的问题。
只是在发布之前添加此操作为我修复:

- name: Setup Java JDK
  uses: actions/[email protected]
  with:
    distribution: 'microsoft'
    java-version: '17'

字符串

相关问题