1

SDK Android: 22 (L) Version UiAutomator: 'com.android.support.test.uiautomator: uiautomator- V18: 2.1.1'UiDevice.getInstance (getInstrumentation()) Crashes (comme référence d'objet Null) lors du lancement de l'instrumentation à l'aide de startInstrumentation()

sur un bouton Cliquez sur Je suis en train d'accéder à partir d'une application Instrumentation Android en utilisant

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); 

Valeur du début indique « vrai » qui indique qu'il a été lancé

problème est: une fois l'Instrume ntation démarre et setUp() est appelée, lorsque le dessous est exécuté, il y a un accident

public class ApplicationTest extends InstrumentationTestCase { 

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

public void testCase1(){ 

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

} 

} 

crash Détails:

/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 

Note: lors de l'exécution de la ligne de commande il n'y a pas de problème fonctionne bien (com.automation.vzw.sanity.test -w am instrument/android.test.InstrumentationTestRunner)

S'il vous plaît aider à surmonter cette

Merci

Répondre

0

Ce n'est pas ainsi que vous obtenez l'instrumentation. Utiliser

Instrumentation instr = InstrumentationRegistry.getInstrumentation(); 

pour accéder à l'instrumentation.

Ensuite, vous pouvez obtenir un objet UIDevice:

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

J'ai essayé et il est nul – likejiujitsu

+0

lequel? La première ou la deuxième commande? Avez-vous activé le mode développeur sur votre téléphone? –

+0

la seconde. oui, le mode développeur est sur – likejiujitsu