构建失败并在 TFS 中出现 COMPILETODALVIK 错误,但它在我的本地计算机中正确构建

Build fail with the COMPILETODALVIK error in TFS but it build properly in my local machine

我已经实现了 xamarin.form 项目与 TFS 的持续集成。 我正在使用 "Hosted VS2017" 作为代理队列。 这几天我遇到了一个问题,我的代码在我的机器上成功构建,但在 TFS 中却没有。 Nuget 恢复成功但 "Build Xamarin.Android Project xyz/xyz.Android/xyz.Android.csproj" 失败,它显示下面的错误

COMPILETODALVIK (0, 0) COMPILETODALVIK(0,0): Error :

C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(2028,3): Error XA5213: java.lang.OutOfMemoryError. Consider increasing the value of $(JavaMaximumHeapSize). Java ran out of memory while executing 'java.exe -jar "C:\Program Files (x86)\Android\android-sdk\build-tools.0.2\lib\dx.jar" --no-strict --dex --output=obj\Release\android\bin obj\Release\android\bin\classes "C:\Program Files (x86)\Microsoft Visual Studio17\Enterprise\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\MonoAndroid\v8.0\mono.android.jar" obj\Release__library_projects__\FormsViewGroup\library_project_imports\formsviewgroup.jar obj\Release__library_projects__\HockeySDK.AndroidBindings\library_project_imports\bin\classes.jar obj\Release__library_projects__\Xamarin.Android.Support.Animated.Vector.Drawable\library_project_imports\bin\classes.jar obj\Release__library_projects__\Xamarin.Android.Support.Compat\library_project_imports\bin\classes.jar obj\Relea...

Process 'msbuild.exe' exited with code '1'.

错误 XA5213:java.lang.OutOfMemoryError。考虑增加 $(JavaMaximumHeapSize) 的值。 Java 运行 在执行 'java.exe -jar

时内存不足

我将堆大小增加到 1G、2G,但 none 的解决方案对我有用。

它在我的机器上正常工作但在 TFS 中不工作

通常,当这种错误进入我们的 visual studio 时,可以通过重建项目来解决。 如何将项目重建为TFS?

我尝试了不同的可能解决方案,但无法解决问题

请尝试以下项目以缩小问题范围:

  • Enable clean source option:设置CleanTrue 获取来源 步骤。
  • 同时在构建步骤中启用 Clean 选项。
  • Select最新的JDK版本(JDK8),selectX64作为JDK 架构。
  • 参考:Xamarin Android Out of Memory Build Failure设置 允许大堆

然后再试一次。

如果仍然无效,您可以尝试 deploy a private agent on Windows,然后在与本地工作的 Develop 机器相同的私有 ant 机器上 install/set SDK/components。然后select私密代理搭建。

在 VSTS 构建中使用 JDK8 和 x64。目前只有这种组合有效。 JDK9 x64 或 JDK x86 不工作....