在Android中运行robotium测试套件时发生OutOfMemory异常
问题描述:
我使用maven为我的android应用程序运行robotium测试套件,但我正在运行到Java中:内存不足异常,但是当我试图单独运行测试文件时,精细。我尝试使用MAT分析堆转储,它说罪魁祸首是一个数组列表,它持有所有我的测试文件的对象,而这些文件反过来持有他们正在测试的活动的对象。转储分析是9.4MB,并且这个araylist拥有它4.3 MB。请提出任何解决方案。在Android中运行robotium测试套件时发生OutOfMemory异常
在此先感谢! Mayank
保护无效拆解()抛出异常{
//Log out...
solo.sendKey(Solo.MENU);
solo.clickOnText("More");
solo.clickOnText("Logout");
if (solo.searchButton("Logout")) {
solo.clickOnButton("Logout");
}
solo.waitForActivity(LoginActivity.class.getName(), 1000);
assertTrue(solo.searchText("Your id"));
int i = 0;
while(solo.getAllOpenedActivities()!=null && solo.getAllOpenedActivities().size()>0){
solo.finishOpenedActivities();
solo.goBack();
if(i++>5){
break;
}
}
solo.finishOpenedActivities();
solo = null;
System.gc();
}
答
你所描述的是固定在Robotium版本3.4.1的问题。请改用该版本。
嗨,雷纳斯。我也尝试了新的vwesion,但我仍然面临同样的问题。 – Mayank 2012-08-14 07:46:17
这是我拆下来的样子。我正在通过robota站点的问题249,它看起来像我面临的同样的问题。 – Mayank 2012-08-14 10:37:43
问题是,您在tearDown()中使用solo.getOpenedActivities(),并通过这样做来创建对活动的严格引用。这就是为什么你得到内存错误。 – Renas 2012-08-14 17:51:57