UiDevice.getUiAutomation(instrumentation) returns null causing NPE, in Robolectric test

Viewed 207

In my Roblectric test, I try to confirm permission dialog with UiDevice

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Build.VERSION_CODES.P])
open class FooTest {

  @Before
  private fun before() {

    var device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())

    // Confirm permissions dialog with device object
    // ...
  }

but this line throws an NPE exception

var device = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())

with stack trace

java.lang.NullPointerException
at androidx.test.uiautomator.QueryController.<init>(QueryController.java:95)
at androidx.test.uiautomator.UiDevice.<init>(UiDevice.java:109)
at androidx.test.uiautomator.UiDevice.getInstance(UiDevice.java:261)

because UiDevice.getUiAutomation(instrumentation) is returning null

public QueryController(Instrumentation instrumentation) {
    mInstrumentation = instrumentation;
    UiDevice.getUiAutomation(instrumentation).setOnAccessibilityEventListener(mEventListener);
}
0 Answers
Related