我们正在使用 Xamarin 开发一个 Android 应用程序。我们使用 Visual Studio Team Services 作为我们的 CI 服务。
该项目包括(除其他外)
- Droid.csproj(安卓项目)
- UITest.csproj(用于 UI 测试的 C# 程序集)
最近 Droid.csproj 因java.lang.OutOfMemoryError: Java heap space
错误而导致构建失败。我们将服务器的配置更改为以 x64 运行,并将 Java 最大堆大小增加到 2G。我可以在 VSTS 中看到该项目现在正在成功构建。
但是, UITest.csproj 失败了,原因如下:
2016-10-13T22:58:49.2048732Z ##[error]COMPILETODALVIK(0,0): Error :
2016-10-13T22:58:49.2048732Z COMPILETODALVIK : UNEXPECTED TOP-LEVEL error : [C:\a\1\s\Droid\Mobile.Droid.csproj]
2016-10-13T22:58:49.2048732Z java.lang.OutOfMemoryError: Java heap space
2016-10-13T22:58:49.2048732Z at java.lang.Object.clone(Native Method)
2016-10-13T22:58:49.2048732Z at java.util.Arrays.sort(Arrays.java:1206)
2016-10-13T22:58:49.2048732Z at java.util.Collections.sort(Collections.java:157)
2016-10-13T22:58:49.2048732Z at com.android.dx.dex.file.MixedItemSection.placeItems(MixedItemSection.java:301)
2016-10-13T22:58:49.2048732Z at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:541)
2016-10-13T22:58:49.2048732Z at com.android.dx.dex.file.DexFile.toDex(DexFile.java:214)
2016-10-13T22:58:49.2048732Z at com.android.dx.command.dexer.Main.writeDex(Main.java:856)
2016-10-13T22:58:49.2048732Z at com.android.dx.command.dexer.Main.runMonoDex(Main.java:323)
2016-10-13T22:58:49.2048732Z at com.android.dx.command.dexer.Main.run(Main.java:277)
2016-10-13T22:58:49.2048732Z at com.android.dx.command.dexer.Main.main(Main.java:245)
2016-10-13T22:58:49.2048732Z at com.android.dx.command.Main.main(Main.java:106)
似乎 UITest 依赖于 Droid,这是有道理的,因为它正在测试 Droids UI 组件。我是否需要在 UITest 项目中配置某些内容才能使其正常工作?
作为参考,这是 UITest 项目的项目配置屏幕:(如您所见,这是一个普通的 C# 项目,因此没有增加堆大小的选项)
为了构建这个 UITest 项目,我还需要在 VSTS 中指定其他内容吗?