2

これは、インストルメンテーション テストでのモーション イベントのコードです。

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

そして、以下は私が得ているエラーです:

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)

何をすべきか教えてください。

4

3 に答える 3

1

インスツルメント インスタンスを取得する可能性があるポインター同期または他のクラスを送信する前に、android.app.Instrumentation inst = getInstrumentation(); Insideを実行する必要があります。ActivityInstrumentationTestCase2

完全なサンプルはこちら

于 2011-03-04T14:06:40.643 に答える
0

これらの行のうち、28行目はどれ? それは、ヌルポインターの exec があった場所です。

使用する

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

必要に応じて、28 行目でどの参照が null であったかを特定します。

于 2010-02-27T05:12:00.057 に答える
0

スタック トレースの先頭が、null ポインターがこの行にあることを示している場合:

instrumentation.sendPointerSync(event);

それはそれinstrumentationが null ではなくであることを意味しますevent。イベントが null の場合、null ポインターはsendPointerSyncメソッド内またはスタックのさらに上で発生します。

于 2011-01-03T21:54:48.913 に答える