2012-08-13 68 views
0

我使用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(); 
} 

回答

0

你所描述的是固定在Robotium版本3.4.1的问题。请改用该版本。

+0

嗨,雷纳斯。我也尝试了新的vwesion,但我仍然面临同样的问题。 – Mayank 2012-08-14 07:46:17

+0

这是我拆下来的样子。我正在通过robota站点的问题249,它看起来像我面临的同样的问题。 – Mayank 2012-08-14 10:37:43

+0

问题是,您在tearDown()中使用solo.getOpenedActivities(),并通过这样做来创建对活动的严格引用。这就是为什么你得到内存错误。 – Renas 2012-08-14 17:51:57

相关问题