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(); 内部操作ActivityInstrumentationTestCase2,这些类有可能检索仪器实例。

在这里完成样本

于 2011-03-04T14:06:40.643 回答
0

如果堆栈跟踪的顶部指示空指针在此行上:

instrumentation.sendPointerSync(event);

那么这意味着它instrumentation是空的,而不是event。如果 event 为 null,则 null 指针将发生在sendPointerSync方法内部或堆栈的更上方。

于 2011-01-03T21:54:48.913 回答
0

这些行中的哪一行是第 28 行?这就是空指针 exep 所在的位置。

利用

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

如果必须的话,找出第 28 行中哪个引用为空。

于 2010-02-27T05:12:00.057 回答