Java.lang.SecurityException: отказ от разрешения: getIntentSender () при использовании UiAutomation в тесте

Всякий раз, когда я пытаюсь использовать UiAutomation в любом тесте через getInstrumentation().getUiAutomation() , процесс выходит из строя с этим исключением:

 java.lang.SecurityException: Permission Denial: getIntentSender() from pid=30334, uid=2000, (need uid=1000) is not allowed to send as package android at android.os.Parcel.readException(Parcel.java:1540) at android.os.Parcel.readException(Parcel.java:1493) at android.app.IUiAutomationConnection$Stub$Proxy.disconnect(IUiAutomationConnection.java:225) at android.app.UiAutomation.disconnect(UiAutomation.java:240) at android.app.Instrumentation.finish(Instrumentation.java:197) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:575) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1837) 

Любая идея почему? Я использую Gradle через Android Studio, пробовал различные версии, вызывая его непосредственно через adb , даже без какой-либо внешней зависимости (и, очевидно, с хотя бы SDK 18) … Всегда сбой.

Это единственный официальный пример, который я нашел: https://www.youtube.com/watch?v=_SlBHUW0ybM

Solutions Collecting From Web of "Java.lang.SecurityException: отказ от разрешения: getIntentSender () при использовании UiAutomation в тесте"

Это не ответ за то, почему UIAutomator не поймает ошибку, а скорее возможное обходное решение, которое я нашел. Когда службы доступности включены, я не могу получить дамп UIAutomator, потому что получаю описанную вами ошибку. Когда я выключаю TalkBack и / или переключаю доступ в настройках доступности, я больше не получаю ошибку отказа в разрешении, и свалка UIAutomator работает успешно. Не уверен, что это вам поможет, но я могу воспроизвести вашу проблему каждый раз, когда службы доступности включены в Lollipop (Nexus 5).

Используйте InstrumentationRegistry.getTargetContext() вместо InstrumentationRegistry.getContext()