2013-11-20 154 views
0

我在編程方面有點新,但是我需要編寫UI自動化測試。 我使用Robotium,但即使我只調用下面的代碼我有「測試運行失敗:由於'java.lang.IllegalAccessError'導致測試運行失敗」 我使用Robotium教程中的測試用例配置項目。測試UI Robotium

public class ExampleTest extends ActivityInstrumentationTestCase2<MapActivity> { 

    private Solo mSolo; 

    public ExampleTest() { 
     super(MapActivity.class); 
    } 

    public void setUp() throws Exception { 
     super.setUp(); 
     mSolo = new Solo(getInstrumentation(), getActivity()); 
    } 

    public void testPreferenceIsSaved() throws Exception { 

    } 

    @Override 
    public void tearDown() throws Exception { 
     mSolo.finishOpenedActivities(); 
    } 
} 

我在logcat中的錯誤: java.lang.IllegalAccessError:在預驗證的類級裁判解決意外實現

+1

LogCat說什麼? – maszter

+0

您是否嘗試過[此](https://code.google.com/p/robotium/issues/detail?id=458)? – Leonidos

+0

@Leonidos謝謝。它解決了我的問題。我查看了isuue的頁面,但我沒有看到。 – Maniek3550

回答

0

這是一個有點惱人的錯誤,基本上是錯誤你所看到的是因爲你在一個類中編譯你的測試apk,它存在於你真正的apk中(我的猜測可能是應用程序本身,但它可能是你使用的庫)。

發生了什麼(不完全是,但它是一個足夠好的心智模型)是,當你啓動你的測試時,它將所有類放在與你的應用程序相同的類路徑中,當它試圖啓動一個活動時,DVM是足夠聰明地認識到發起的活動不是它期望的活動。

如何解決這個我聽到你問?那麼確保你的主應用程序中存在的測試應用程序中的任何依賴項都被設置爲提供的或任何等效的內容,以便它們不會被編譯到APK中。