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