Pruebas de instrumentación: getActivity () está causando una excepción NullPointerException

Cuando ejecuto mi prueba obtengo este error:

Java.lang.NullPointerException: Intenta invocar el método virtual 'void android.app.Instrumentation.setInTouchMode (boolean)' en una referencia de objeto nulo

En android.test.ActivityInstrumentationTestCase2.getActivity (ActivityInstrumentationTestCase2.java:100)

En com.example.my_project.MyActivityTest.setup (MyActivityTest.java:46)

Este es mi código:

@RunWith(AndroidJUnit4.class) public class MyActivityTest extends ActivityInstrumentationTestCase2<MyActivity> { private MyActivity myActivity; // ... public MyActivityTest() { super(MyActivity.class); } @Before public void setup() throws Exception { super.setUp(); setActivityInitialTouchMode(true); myActivity = getActivity(); } 

También he intentado substituir la mayor parte del código antedicho con un método de prueba como esto:

 @Test public void testActivityNotNull() { MyActivity myActivity = getActivity(); assertNotNull(myActivity); } 

Pero consigo el mismo error. ¿Por qué está pasando esto?

Finalmente lo deduje. Necesita agregar la siguiente línea de código:

 injectInstrumentation(InstrumentationRegistry.getInstrumentation()); 

Antes de llamar a getActivity (). Así que en tu caso tendrías un método de configuración como este:

  @Before public void setUp() throws Exception { super.setUp(); // Injecting the Instrumentation instance is required // for your test to run with AndroidJUnitRunner. injectInstrumentation(InstrumentationRegistry.getInstrumentation()); mMainActivity = getActivity(); } 

Respuesta se han encontrado en documentos oficiales: http://developer.android.com/tools/testing-support-library/index.html#AndroidJUnitRunner

  • Error de Android Studio al hacer clic en el monitor del dispositivo Android
  • Error al transferir la aplicación de Eclipse a Android Studio
  • Error al instalar apk en Android Studio 2.3
  • ¿Dónde está el archivo build.gradle ubicado para mi proyecto android?
  • ¿Qué significan los iconos del módulo en Android Studio?
  • ¿Dónde está la clase de aplicación para un proyecto en Android Studio?
  • ¿Cuál es el acceso directo a "show implementation" en Android Studio?
  • Merge o Rebase o Branch Default en Android Studio? ¿Cuáles son las diferencias?
  • SDK ubicación no encontrada. Defina la ubicación con sdk.dir en el archivo local.properties o con una variable de entorno ANDROID_HOME
  • Error: Causa: no se puede encontrar una ruta de certificación válida a la dirección solicitada
  • Android Studio no puede procesar FloatingActionButton
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.