1

我创建了一个 GyroListeneronCreate()并在onResume(). 有时我会得到一个 NullPointerException in onResume(),但我不明白这是怎么回事,因为onCreate()总是被称为 be onResume()。这只发生在从 2.2 到 3.2.1 的 Android 版本中,大多数用户都有 Android 4+,我没有从他们的设备上收到关于此错误的单一报告。

这是我的代码(NullPointerException 在最后一行抛出onResume()):

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lock_screen);

    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    sensors = sensorManager.getSensorList(Sensor.TYPE_GYROSCOPE);
    gyroListener = new GyroListener();
    gyroListener.setOnGyroEventListener(new OnGyroEventListener() {
        @Override
        public void onTimeReset() {
            Toast.makeText(getApplicationContext(), "Reseted the time",
                Toast.LENGTH_LONG).show();
        }
    });
}

@Override
protected void onPause() {
    sensorManager.unregisterListener(gyroListener);
    super.onPause();
}

@Override
protected void onResume() {
    super.onResume();

    for (final Sensor sensor : sensors) {
        sensorManager.registerListener(gyroListener, sensor,
                SensorManager.SENSOR_DELAY_FASTEST);
    }
    gyroListener.resetStatus();
}

这是一个例外:

java.lang.RuntimeException:无法恢复活动 {mypackage/mypackage.activity.MyActivity}:android.app.ActivityThread.performResumeActivity(ActivityThread.java:2124) 的 android.app.ActivityThread.handleResumeActivity(ActivityThread) 处的 java.lang.NullPointerException .java:2139) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1672) 在 android.app.ActivityThread.access$1500(ActivityThread.java:117) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java :935) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:130) 在 android.app.ActivityThread.main(ActivityThread.java:3691) 在 java .lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)在 com.dalvik.system.NativeStart.main(Native Method) 处的 android.internal.os.ZygoteInit.main(ZygoteInit.java:670) 原因:mypackage.activity.MyActivity.onResume(MyActivity.java:373) 处的 java.lang.NullPointerException ) 在 android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1153) 在 android.app.Activity.performResume(Activity.java:3874) 在 android.app.ActivityThread.performResumeActivity(ActivityThread.java:2114) ... 12更多的.. 还有 12 个.. 还有 12 个

4

0 回答 0