Android Studio 环境Robotium网页相关测试异常java.lang.NullPointerException: lock == null
Assert.assertTrue("OpenWebUrlError", solo.waitForWebElement(By.textContent("找不到网页")));java.lang.NullPointerException: lock == nullat java.io.Reader.init>(Reader.java:64)at java.io.InputStreamReade
·
Assert.assertTrue("OpenWebUrlError", solo.waitForWebElement(By.textContent("找不到网页")));
java.lang.NullPointerException: lock == null
at java.io.Reader.<init>(Reader.java:64)
at java.io.InputStreamReader.<init>(InputStreamReader.java:122)
at java.io.InputStreamReader.<init>(InputStreamReader.java:59)
at com.robotium.solo.WebUtils.getJavaScriptAsString(WebUtils.java:354)
at com.robotium.solo.WebUtils.prepareForStartOfJavascriptExecution(WebUtils.java:162)
at com.robotium.solo.WebUtils.executeJavaScriptFunction(WebUtils.java:276)
at com.robotium.solo.WebUtils.executeJavaScript(WebUtils.java:238)
at com.robotium.solo.WebUtils.getWebElements(WebUtils.java:111)
at com.robotium.solo.Searcher.searchForWebElement(Searcher.java:238)
at com.robotium.solo.Waiter.waitForWebElement(Waiter.java:498)
at com.robotium.solo.Solo.waitForWebElement(Solo.java:672)
AndroidStudio直接调用Robotium源码时,测试网页相关所有case都抛出以上异常,
定位
BufferedReader input = new BufferedReader(new InputStreamReader(fis));
该语句抛出null异常
InputStream fis = getClass().getResourceAsStream("RobotiumWeb.js");
执行发现这个js文件似乎读取失败,修改读取路径到androidTest下也抛出同样的异常,由于AS新的三部分架构可能改变了测试的框架导致,getResourceAsStream读取文件失败
暂时解决办法把这个js文件扔到sdcard里了
InputStream fis = new FileInputStream(new File("/sdcard/RobotiumWeb.js"));
测试执行通过。

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)