Xamarin UI测试“1不是受支持的代码页。”

时间:2017-06-02 11:48:04

标签: c# xamarin.forms visual-studio-2017 codepages xamarin.uitest

尝试运行xamarin UI测试时,我的计算机出现问题。这是一个xamarin表单项目,我正在Android设备上构建和测试。我正在使用视觉工作室社区2017和windows。

我已经在我自己的项目和microsoft提供的示例项目中尝试了两种方法:https://developer.xamarin.com/samples/test-cloud/Quickstarts/CreditCardValidator.Droid/

相同的代码可以在其他几台计算机上运行,​​我可以看到相同的设置。

我得到的错误是:

System.ArgumentException : 1 is not a supported code page.
Parameter name: codepage

这是stacktrace的结尾:

at System.Text.Encoding.GetEncoding(Int32 codepage)
at ICSharpCode.SharpZipLib.Zip.ZipFile.ReadEntries()
at ICSharpCode.SharpZipLib.Zip.ZipFile..ctor(FileStream file)
at Xamarin.UITest.Shared.Android.ApkFile.GetFileBytes(String fileName)

调试的最后一行是:

app = ConfigureApp.Android.Debug().ApkFile(appPath).StartApp(mode);我已经检查过它是apk的正确路径,“mode”是AppDataMode.Clear。

我尝试过更改我能找到的任何选项,例如项目属性或visual studio和windows设置。一切都是最新的,我尝试了清洁/构建/重启视觉工作室的每个组合。我看过HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage并没有发现任何与工作机器不同的东西。在搜索时我没有找到任何让我更接近解决方案的东西。这个错误似乎并不常见。 OEMCP(原始设备制造商代码页)在注册表中设置为437,但在代码中记录TextInfo.OEMCodePage给出“1”,这就是错误的描述。也许这有帮助。

Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage == 1

我的下一步是重新安装visual studio或windows。

1 个答案:

答案 0 :(得分:0)

在代码级别,您可以调用

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

例如在AppInitializer.StartApp()的开头。 然后,您无需修改​​Windows设置即可运行测试。