Android,Robotium– 发布截图

Android,Robotium– 发布截图,第1张

概述我正在尝试使用Robotium截取我的Android应用程序的屏幕截图,我正在使用下面找到的函数here.publicstaticStringSCREEN_SHOTS_LOCATION="/sdcard/";publicstaticvoidtakeScreenShot(Viewview,Stringname)throwsException{view.setDrawingCacheEnabled(true)

我正在尝试使用Robotium截取我的Android应用程序的屏幕截图,我正在使用下面找到的函数here.

public static String SCREEN_SHOTS_LOCATION="/sdcard/"; public static voID takeScreenShot(VIEw vIEw, String name) throws Exception {     vIEw.setDrawingCacheEnabled(true);     vIEw.buildDrawingCache();     Bitmap b = vIEw.getDrawingCache();     fileOutputStream fos = null;     try     {          file sddir = new file(SCREEN_SHOTS_LOCATION);          if (!sddir.exists())          {              sddir.mkdirs();          }          fos = new fileOutputStream(SCREEN_SHOTS_LOCATION + name + "_" + System.currentTimeMillis() + ".jpg");          if (fos != null)          {              b.compress(Bitmap.CompressFormat.JPEG, 90, fos);              fos.close();          }      }      catch (Exception e)      {      } } 

我从我的测试中这样称呼它:

takeScreenShot(solo.getVIEw(0), "Test");

当我调用该函数时,我在该行上得到一个NullPointerException,它看起来好像VIEw是null.

我也试过用

solo.getVIEws();

并循环浏览每个视图并截取屏幕截图,但我也得到了每个视图的NullPointerException.

ArrayList vIEws = solo.getVIEws();for(int i=0; i < vIEws.size(); i++){    takeScreenShot(solo.getVIEw(i), "Test");}

我对AndroID&使用Robotium的AndroID测试自动化,任何人都可以给我一些关于调试这个的建议,或者为什么VIEws似乎是null并且我的屏幕捕获不起作用的原因?

TIA.

更新

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)

解决方法:

您获得NullPointerException的原因是因为您错误地使用了getVIEw(int ID).当你给它一个索引而不是ID时,它将找不到你正在寻找的视图,因此返回null.您想要使用的是:

takeScreenShot(solo.getVIEws().get(0),“Test”)

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

总结

以上是内存溢出为你收集整理的Android,Robotium – 发布截图全部内容,希望文章能够帮你解决Android,Robotium – 发布截图所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1096391.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-28
下一篇2022-05-28

发表评论

登录后才能评论

评论列表(0条)

    保存