1

Android SDK: 22 (L), UiAutomator Версия: «com.android.support.test.uiautomator: uiautomator- v18: 2.1.1'UiDevice.getInstance (getInstrumentation()) Сбои (как нулевая ссылка на объект) при запуске с использованием инструментария startInstrumentation()

на кнопке Click Я пытаюсь получить доступ к инструментарию из приложения Android с помощью

Boolean start = false; 
start = startInstrumentation(new ComponentName("com.automation.vzw.sanity.test", "android.test.InstrumentationTestRunner"), null, null); 
    System.out.println("value of start is " +start); 

значение старта показывает „истинный“, который указывает на то, что был запущен

Проблема это: как только Instrume ntation начинается и настройка() вызывается, когда ниже запускается на выполнение, есть Краш

public class ApplicationTest extends InstrumentationTestCase { 

public void setUp() { 
       UiDevice testDevice = UiDevice.getInstance(getInstrumentation()); 
      } 

public void testCase1(){ 

     System.out.println("In testcase1"); 

} 

} 

Краш Детали:

/TestRunner(11209): started: testCase1(com.automation.vzw.sanity.ApplicationTest) 

I/TestRunner(11209): failed: testCase1(com.automation.vzw.sanity.ApplicationTest) 

I/TestRunner(11209): ----- begin exception ----- 

I/TestRunner(11209): 

I/TestRunner(11209): java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.UiAutomation.setOnAccessibilityEventListener(android.app.UiAutomation$OnAccessibilityEventListener)' on a null object reference 

I/TestRunner(11209): at android.support.test.uiautomator.UiAutomatorBridge.setOnAccessibilityEventListener(UiAutomatorBridge.java:78) 

I/TestRunner(11209): at android.support.test.uiautomator.QueryController.<init>(QueryController.java:58) 

I/TestRunner(11209): at android.support.test.uiautomator.UiAutomatorBridge.<init>(UiAutomatorBridge.java:66) 

I/TestRunner(11209): at android.support.test.uiautomator.InstrumentationUiAutomatorBridge.<init>(InstrumentationUiAutomatorBridge.java:35) 

I/TestRunner(11209): at android.support.test.uiautomator.UiDevice.<init>(UiDevice.java:103) 

I/TestRunner(11209): at android.support.test.uiautomator.UiDevice.getInstance(UiDevice.java:263) 

I/TestRunner(11209): at com.automation.vzw.sanity.ApplicationTest.setUp(ApplicationTest.java:103) 

I/TestRunner(11209): at junit.framework.TestCase.runBare(TestCase.java:132) 

I/TestRunner(11209): at junit.framework.TestResult$1.protect(TestResult.java:115) 

I/TestRunner(11209): at junit.framework.TestResult.runProtected(TestResult.java:133) 

I/TestRunner(11209): at junit.framework.TestResult.run(TestResult.java:118) 

I/TestRunner(11209): at junit.framework.TestCase.run(TestCase.java:124) 

I/TestRunner(11209): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191) 

I/TestRunner(11209): at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176) 

I/TestRunner(11209): at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) 

I/TestRunner(11209): at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1944) 

I/TestRunner(11209): ----- end exception ----- 

I/TestRunner(11209): finished: testCase1(com.automation.vzw.sanity.ApplicationTest) 

I/ActivityManager(30686): Force stopping com.automation.vzw.sanity appid=10175 user=0: finished inst 

I/ActivityManager(30686): Killing 11209:com.automation.vzw.sanity/u0a175 (adj 0): stop com.automation.vzw.sanity 

I/ServiceManager(31912): Waiting for service SurfaceFlinger... 

W/ActivityManager(30686): Spurious death for ProcessRecord{2a8ec647 11209:com.automation.vzw.sanity/u0a175}, curProc for 11209: null 

Примечание: при выполнении из командной строки есть никаких проблем не работает хорошо (ам инструмента -w com.automation.vzw.sanity.test/android.test.InstrumentationTestRunner)

Пожалуйста, помогите преодолеть эту

Спасибо

ответ

0

Это не то, как вы получаете приборы. Использовать

Instrumentation instr = InstrumentationRegistry.getInstrumentation(); 

для доступа к контрольно-измерительной аппаратуре.

Тогда вы можете получить объект UIDevice:

UiDevice device = UiDevice.getInstance(instr); 
+0

Я попробовал это, и это является недействительным – likejiujitsu

+0

который один? Первая или вторая команда? На вашем телефоне активирован режим разработчика? –

+0

второй. да, режим разработчика находится на – likejiujitsu

 Смежные вопросы

  • Нет связанных вопросов^_^