Android onResume中出现奇怪的NullPointerException

Android onResume中出现奇怪的NullPointerException,android,Android,我在我的崩溃跟踪器中看到我的用户弹出这个NullPointerException。我自己还没能复制它,对我来说最神秘的是,异常本身似乎发生在Android活动类中——在一行,从Android源代码看,根本没有代码 以下是堆栈跟踪: java.lang.RuntimeException: Unable to resume activity {com.catherineapp.android/com.catherineapp.android.HomeAct}: java.lang.NullPoint

我在我的崩溃跟踪器中看到我的用户弹出这个NullPointerException。我自己还没能复制它,对我来说最神秘的是,异常本身似乎发生在Android活动类中——在一行,从Android源代码看,根本没有代码

以下是堆栈跟踪:

java.lang.RuntimeException: Unable to resume activity {com.catherineapp.android/com.catherineapp.android.HomeAct}: java.lang.NullPointerException
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2448)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2476)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1990)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4477)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at android.app.Activity.onResume(Activity.java:1212)
at com.catherineapp.android.CABaseAct.onResume(CABaseAct.java:69)
at com.catherineapp.android.HomeAct.onResume(HomeAct.java:468)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1156)
at android.app.Activity.performResume(Activity.java:4775)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2438)   
... 12 more
java.lang.NullPointerException
at android.app.Activity.onResume(Activity.java:1212)
at com.catherineapp.android.CABaseAct.onResume(CABaseAct.java:69)
at com.catherineapp.android.HomeAct.onResume(HomeAct.java:468)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1156)
at android.app.Activity.performResume(Activity.java:4775)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2438)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2476)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1990)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4477)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
com.catherineapp.android.CABaseAct.onResume(CABaseAct.java:69)
行中的代码只是:
super.onResume()

我正在看Android的源代码

以下是我的
HomeAct
onPause
方法:

@Override
public void onPause() {
    super.onPause();
    this.unregisterReceiver(mMessageReceiver);
    this.unregisterReceiver(mChallengeReceiver);
}
以下是我的
HomeAct
onResume
方法:

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

    refreshData();
    if (mMessageReceiver == null)
        mMessageReceiver = new MessageBroadcastReceiver();
    IntentFilter messageFilter = new IntentFilter(CAService.INTERNAL_MESSAGE_STATUS_UPDATE);
    messageFilter.setPriority(0);
    this.registerReceiver(mMessageReceiver, messageFilter);

    if (mChallengeReceiver == null)
        mChallengeReceiver = new ChallengeBroadcastReceiver();
    IntentFilter challengeFilter = new IntentFilter(CAService.INTERNAL_CHALLENGE_STATUS_UPDATE);
    challengeFilter.setPriority(0);
    this.registerReceiver(mChallengeReceiver, challengeFilter);

    showFeedbackRequest();

}
@Override
public void onResume() {
    super.onResume();

    // track each Activity creation as a result event
    String activityName = this.getClass().getName().replace("com.catherineapp.android.", "");
    TrackDao.track(activityName + ".onResume");
}
以下是
onResume
实现的
CABaseAct

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

    refreshData();
    if (mMessageReceiver == null)
        mMessageReceiver = new MessageBroadcastReceiver();
    IntentFilter messageFilter = new IntentFilter(CAService.INTERNAL_MESSAGE_STATUS_UPDATE);
    messageFilter.setPriority(0);
    this.registerReceiver(mMessageReceiver, messageFilter);

    if (mChallengeReceiver == null)
        mChallengeReceiver = new ChallengeBroadcastReceiver();
    IntentFilter challengeFilter = new IntentFilter(CAService.INTERNAL_CHALLENGE_STATUS_UPDATE);
    challengeFilter.setPriority(0);
    this.registerReceiver(mChallengeReceiver, challengeFilter);

    showFeedbackRequest();

}
@Override
public void onResume() {
    super.onResume();

    // track each Activity creation as a result event
    String activityName = this.getClass().getName().replace("com.catherineapp.android.", "");
    TrackDao.track(activityName + ".onResume");
}

错误发生在Activity.onResume()调用中,该调用通过
super.onResume()
调用级联到。这是我在重写的
onResume()调用中的第一个调用。

我们需要您的Java代码,所以请提供它。也许您可以显示更多的代码?您是否重写了
onPause()
方法?@Sajmon您想要哪种代码?我意识到我没有发布太多的内容;大部分似乎都不相关。我很乐意提供任何有用的东西。@ZouZou您希望我提供什么代码?我很乐意把更多的内容包括进来,只是看起来不相关。我在HomeAct中重写了onPause,但在CABaseAct中没有重写。是否在onPause()中将某些变量设置为null?如果是的话,这些变量在CABaseAct中使用了吗?