我在尝试运行xamarin UI测试时遇到了问题。这是一个xamarin表单项目,并且我正在Android设备上构建和测试。我使用的是Visual Studio Community 2017和Windows。
我已经在自己的项目以及微软提供的示例项目中尝试过:https://developer.xamarin.com/samples/test-cloud/Quickstarts/CreditCardValidator.Droid/ 据我所见,同样的代码可以在其他几台电脑上工作,安装环境也相同。
我收到的错误信息如下:
这是堆栈跟踪的结束:
我在调试时能够到达的最后一行是:
我已尝试更改所有可找到的选项,如项目属性、Visual Studio和Windows设置。所有东西都是最新的,我尝试了每种清理/构建/重新启动Visual Studio的组合。我已查看
我已经在自己的项目以及微软提供的示例项目中尝试过:https://developer.xamarin.com/samples/test-cloud/Quickstarts/CreditCardValidator.Droid/ 据我所见,同样的代码可以在其他几台电脑上工作,安装环境也相同。
我收到的错误信息如下:
System.ArgumentException : 1 is not a supported code page.
Parameter name: codepage
这是堆栈跟踪的结束:
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设置。所有东西都是最新的,我尝试了每种清理/构建/重新启动Visual Studio的组合。我已查看
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage
,并没有发现与工作机器有任何不同的内容。在搜索过程中,我还没有找到任何能让我更接近解决方案的东西。这个错误似乎不常见。OEMCP(原始设备制造商代码页)在注册表中设置为437,但在代码中记录TextInfo.OEMCodePage会得到"1",这就是错误描述。也许这可以帮助解决问题。
Thread.CurrentThread.CurrentCulture.TextInfo.OEMCodePage == 1
对我来说,下一步将是重新安装Visual Studio或Windows。