2010-02-27 6 views
2

Ceci est le code pour les événements de mouvement dans mes tests d'instrumentation.Événements de mouvement dans android

long downTime = SystemClock.uptimeMillis(); 

    long eventTime = SystemClock.uptimeMillis(); 

    MotionEvent event = MotionEvent.obtain(downTime, eventTime, 
    MotionEvent.ACTION_DOWN, 100,100, 0); 

    MotionEvent event2 = MotionEvent.obtain(downTime, eventTime, 
    MotionEvent.ACTION_UP, 100, 100, 0); 

    instrumentation.sendPointerSync(event); 

    instrumentation.sendPointerSync(event2); 

Et voici le iam d'erreur se:

java.lang.NullPointerException 
at com.ni.fastflip.test.FastFlipWebviewTest.test(FastFlipWebviewTest.java:28) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:205) 
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:195) 
at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:175) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169) 
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:154) 
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:430) 
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1447) 

tout organisme peut me suggérer ce qu'il faut faire s'il vous plaît

Répondre

0

Lesquelles de ces lignes est la ligne 28? c'est où le pointeur nul exep était.

Utilisez

if(whatever==null){ Log.d("tag","whatever was null"); } 

pour savoir quelle référence était nulle sur la ligne 28 si vous devez.

+0

exception de pointeur nul est à instrumentation.sendPointerSync (event); L'événement est nul ici. Que dois-je faire maintenant? – siri

+0

Je ne sais pas: / – Nathan

0

Si le haut de la trace de la pile indique le pointeur NULL est sur cette ligne:

instrumentation.sendPointerSync(event); 

Ensuite, cela signifie que instrumentation est nulle, non event. Si l'événement était null alors le pointeur nul arriverait à l'intérieur de la méthode sendPointerSync ou plus haut dans la pile.

1

Vous devez faire android.app.Instrumentation inst = getInstrumentation(); À l'intérieur ActivityInstrumentationTestCase2 avant d'envoyer des synchronisations de pointeurs ou d'autres classes, qui ont la possibilité de récupérer l'instance d'instruments.

complètes échantillon here

Questions connexes