1

/app/src/androidTest/java/MyHomeActivityTest.java の MyHomeActivityTest.Java として、androidTest フォルダーに 1 つのテスト ケースを作成しました。

そして、 /app/src/main/java/HomeActivity.java に HomeActivity.java クラスが 1 つあります。

私の HomeActivity.java クラスでは、ビューインジェクションにバターナイフを使用しています。MyHomeActivityTest.java で HomeActivity のテスト ケースを実行しています。

しかし、テストケースを実行しているとき、テストは正常に実行されていますが、バターナイフの NoClassDefFound エラーが発生しています。

私のプロジェクトクラスは

MyHomeActivityTest.java

public class HomeActivityTest extends ActivityInstrumentationTestCase2<HomeActivity> {
    private Solo solo;

    public HomeActivityTest() {
        super(HomeActivity.class);
    }

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

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

    public void testRun() {
        solo.assertCurrentActivity("Home activity class",HomeActivity.class);
        final LinearLayout homeScreen =
                (LinearLayout) solo.getCurrentActivity().findViewById(R.id.home_screen);
        assertEquals(View.GONE, homeScreen.getVisibility());
    }

}

build.gradle

dependencies{
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.jakewharton:butterknife:5.1.1'
    compile 'com.squareup.picasso:picasso:1.1.1'
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1'
}

MyHomeActivityTest クラスを実行するとすぐに、このクラスのスーパー クラスは、butterKnife を使用している HomeActivity.class であるため、NoClassDefFoundError が返されます。

4

1 に答える 1