Android模拟器-无法拍摄屏幕截图-不支持的协议:2

时间:2018-07-04 09:48:38

标签: android xamarin android-emulator xamarin.uitest

我正在使用Xamarin.UITest在android模拟器上运行测试。测试成功运行,但是所需文件夹中没有屏幕截图文件。 日志文件中有错误消息:

12:12:03 E/Screenshot: Unsupported protocol: 2
Could not take screenshot
java.lang.NullPointerException
    at sh.calaba.screenshot.ScreenshotTaker.saveImage(Unknown Source)
    at sh.calaba.screenshot.ScreenshotTaker.takeScreenshot(Unknown Source)
    at sh.calaba.screenshot.ScreenshotTaker.main(Unknown Source)

04-07-2018 12:12:03.738 +03:00 - 9038 - Took screenshot. { Path: "C:\Source\Repos\MyApp\MyApp.UITests\bin\Release\screenshot-1.png", Title: "Welcome screen." }

初始化:

return ConfigureApp
    .Android
    .EnableLocalScreenshots()
    .ApkFile("../../../MyApp.Android/bin/Release/com.myapp.MyApp-Signed.apk")
    .StartApp();

测试:

AppResult[] results = app.WaitForElement(c => c.Marked("mainPage"));
app.Screenshot("Welcome screen.");
Assert.IsTrue(results.Any());

3 个答案:

答案 0 :(得分:0)

最新的Calabash for Android 8.1已解决该问题

参考:https://github.com/calabash/calabash-android/pull/866

答案 1 :(得分:0)

我在真实设备上也遇到了同样的问题,但是现在我已经解决了问题。 当我遇到此问题时,当时我在使用版本为25.0.0的Android SDK工具和版本为Android 10.0(Q)的SDK平台。 因此,我已将SDK工具版本更新为26.1.1,并且切换到了SDK Platform Android 8.1(Oreo)。这些步骤解决了我的问题,现在我可以在uiautomatorviewer上截屏了。 我已经使用Android Studio更新了SDK工具和SDK平台。 请检查这些步骤是否可以帮助您解决问题。

答案 2 :(得分:0)

将ddmlib.jar版本更新为26.0.0-dev将解决此问题。