Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,Robotium-问题截图_Android_Robotium - Fatal编程技术网

Android,Robotium-问题截图

Android,Robotium-问题截图,android,robotium,Android,Robotium,我正在尝试使用Robotium拍摄我的Android应用程序的屏幕截图,我正在使用我发现的以下功能 我在测试中这样称呼它: takeScreenShot(solo.getView(0), "Test"); 当我调用该函数时,我在该行上得到一个NullPointerException,在我看来,该视图似乎为null 我也试过使用 solo.getViews() 在每个视图中循环并拍摄屏幕截图,但每个视图都有一个NullPointerException ArrayList views = solo

我正在尝试使用Robotium拍摄我的Android应用程序的屏幕截图,我正在使用我发现的以下功能

我在测试中这样称呼它:

takeScreenShot(solo.getView(0), "Test");
当我调用该函数时,我在该行上得到一个NullPointerException,在我看来,该视图似乎为null

我也试过使用

solo.getViews()

在每个视图中循环并拍摄屏幕截图,但每个视图都有一个NullPointerException

ArrayList views = solo.getViews();

for(int i=0; i < views.size(); i++)
{
    takeScreenShot(solo.getView(i), "Test");
}

获取NullPointerException的原因是您不正确地使用了getView(int id)。当您给它一个索引而不是id时,它将找不到您要查找的视图,因此返回null。您要使用的内容如下:

截图(solo.getViews().get(0),“Test”)


这意味着Robotium在给定时间内可以使用的所有视图中的第一个视图。

获取NullPointerException的原因是您错误地使用了getView(int id)。当您给它一个索引而不是id时,它将找不到您要查找的视图,因此返回null。您要使用的内容如下:

截图(solo.getViews().get(0),“Test”)


这意味着Robotium在给定时间内所有可用视图的第一个视图。

请确保您的模拟器为SD卡预留了一些兆字节

如果要将jpg拉回到PC,可以让java运行以下命令行:

C:\Users\Me\android sdk\platform tools\adb.exe pull /sdcard/test_1329402481933.jpg c:\


确保您的模拟器为SD卡预留了一些兆字节

如果要将jpg拉回到PC,可以让java运行以下命令行:

C:\Users\Me\android sdk\platform tools\adb.exe pull /sdcard/test_1329402481933.jpg c:\


要在应用程序的任何一点拍摄屏幕快照,只需编写以下代码

独唱。截图()

但别忘了在主应用程序中授予权限


要在应用程序的任何位置拍摄屏幕快照,只需编写以下代码

独唱。截图()

但别忘了在主应用程序中授予权限


我也尝试过这种方法,但我仍然在调用takeScreenShot的线路上看到NullPointerException。有没有其他方法可以确定我的视图是否存在?如果单独执行.getViews().size(),会得到什么?好的。日志上到底说了什么,你可以粘贴它吗?我添加了堆栈跟踪,它发生在调用takeScreenShot的行上。奇怪的是,如果我将takeScreenShot的内容复制到我的测试类中,而不是对函数的调用,它就可以工作了!我只有在尝试调用函数时才得到NullPointerException?我也尝试过这种方法,但我仍然在调用takeScreenShot的那一行看到NullPointerException。有没有其他方法可以确定我的视图是否存在?如果单独执行.getViews().size(),会得到什么?好的。日志上到底说了什么,你可以粘贴它吗?我添加了堆栈跟踪,它发生在调用takeScreenShot的行上。奇怪的是,如果我将takeScreenShot的内容复制到我的测试类中,而不是对函数的调用,它就可以工作了!我只在尝试调用函数时得到NullPointerException?
ArrayList views = solo.getViews();

for(int i=0; i < views.size(); i++)
{
    takeScreenShot(solo.getView(i), "Test");
}
Error in testUI:
java.lang.NullPointerException
        at com.myapp.test.UITests.testUI(UITests.java:117)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:204)
        at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:194)
        at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:186)
        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)
        at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154)
        at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:529)
        at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1448)