Android 使用Uiautomator捕获图像/屏幕截图时出现异常

Android 使用Uiautomator捕获图像/屏幕截图时出现异常,android,junit,ui-automation,Android,Junit,Ui Automation,在使用UiautomatorTestcase类捕获主要活动的屏幕截图时,我遇到了以下异常 我正在使用的示例代码 public class MyActivityTest extends UiAutomatorTestCase { public UiautomatorAdaptxt() { // TODO Auto-generated constructor stub } @Override protected void setUp() throw

在使用UiautomatorTestcase类捕获主要活动的屏幕截图时,我遇到了以下异常

我正在使用的示例代码

public class MyActivityTest extends UiAutomatorTestCase {

    public UiautomatorAdaptxt() {
        // TODO Auto-generated constructor stub
    }

    @Override
    protected void setUp() throws Exception {
        // TODO Auto-generated method stub
        super.setUp();

    }

    public void testOpenMainActivity() throws UiObjectNotFoundException {
        -->Here I use the code to open my Activity<--
        getUiDevice().takeScreenshot(storePath);
    }
}
公共类MyActivityTest扩展UiAutomatorTestCase{
公共UiautomatorAdaptxt(){
//TODO自动生成的构造函数存根
}
@凌驾
受保护的void setUp()引发异常{
//TODO自动生成的方法存根
super.setUp();
}
public void testOpenMainActivity()引发UiObjectNotFoundException{

-->这里我使用代码打开我的活动你需要安卓4.2或更高版本的设备才能以这种方式截图

这是因为在调用目标时,Android 4.2或API Level 17中添加了
takeScreenshot
方法

发生的情况是,当您在本地计算机上编译时,您针对包含此方法的android-17或更高版本进行编译,因此编译成功。但是,当部署到android-16的目标android设备上时,此方法丢失。当测试代码尝试调用此方法时,它抛出
NoSuchMethodError
异常

作为一种解决方法,您可以像这样使用adb截图

adb shell screencap -p /data/local/tmp/screen-capture.png
adb pull /data/local/tmp/screen-capture.png <localfile.png>
adb shell rm /data/local/tmp/screen-capture.png
adb shell screencap-p/data/local/tmp/screen-capture.png
adb pull/data/local/tmp/screen-capture.png
adb shell rm/data/local/tmp/screen-capture.png

Hi Vidstige感谢您提供的信息,您能告诉我takeScreenshot(文件存储路径)中使用的路径参数吗?我应该提供哪个路径来查看捕获的图像??。