Anotación @UiThreadTest produce "java.lang.Exception: No se pueden ejecutar métodos"

He estado tratando de escribir una prueba de unidad que funciona con barras del sistema. Estaba recibiendo errores al intentar acceder a las cosas desde el subproceso equivocado: android.view.ViewRootImpl $ CalledFromWrongThreadException: Sólo el subproceso original que creó una jerarquía de vistas puede tocar sus vistas.

He leído que el uso de la anotación @UiThreadTest hará que mi caso de prueba se ejecute en el hilo ui y resolver el error. Sin embargo, cuando lo uso recibo este error: java.lang.Exception: No hay métodos ejecutables

He agregado el UiThreadTestRule y asegurado thatI'm que importa android.support.test.annotation.UiThreadTest, pero en ninguna utilidad.

¿Hay algo más que me falta?

import android.support.test.InstrumentationRegistry; import android.support.test.rule.UiThreadTestRule; import android.support.test.runner.AndroidJUnit4; import android.test.ActivityInstrumentationTestCase2; import android.view.View; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import android.support.test.annotation.UiThreadTest; import org.junit.runner.RunWith; @RunWith(AndroidJUnit4.class) /** * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a> */ public class SystemBarSetterTest extends ActivityInstrumentationTestCase2<SystemBarSetter> { private SystemBarSetter setter; public SystemBarSetterTest() { super(SystemBarSetter.class); } @Rule public UiThreadTestRule mUiThreadTestRule = new UiThreadTestRule(); @Before public void setUp() throws Exception { super.setUp(); injectInstrumentation(InstrumentationRegistry.getInstrumentation()); setter = getActivity(); } @Override public void runTestOnUiThread(Runnable r) throws Throwable { super.runTestOnUiThread(r); } @Test public void testImmersiveSticky() throws Exception { setter.setImmersiveStickyMode(); int requiredFlags = View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; assertEquals(requiredFlags, setter.getCurrentUiVisibility()&requiredFlags); } } 

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.